私は管理パネル上のいくつかのメニューを非表示にしたいです:外観、プラグイン、そしてツール。
プラグインなしでそれを隠すには?
そして、どうすれば後で簡単にそれらを隠すことができますか?
remove_menu_page でこれを行うことができます。テーマまたはプラグインのfunctions.phpに適切なメニュースラッグを追加します。
<?php remove_menu_page( $menu_slug ) ?>
ユーザーは直接リンクを使用してこれらのメニューにアクセスできます。ユーザがメニューにアクセスするのをブロックするつもりなら、ユーザロールを設定し、それらが関連する capabilities を持っていないことを確認する必要があります。
これは、WordPressのクリーンインストールに含まれるメニューのスラッグの例のリストです。
<?php
function remove_menus(){
remove_menu_page( 'index.php' ); //Dashboard
remove_menu_page( 'edit.php' ); //Posts
remove_menu_page( 'upload.php' ); //Media
remove_menu_page( 'edit.php?post_type=page' ); //Pages
remove_menu_page( 'edit-comments.php' ); //Comments
remove_menu_page( 'themes.php' ); //Appearance
remove_menu_page( 'plugins.php' ); //Plugins
remove_menu_page( 'users.php' ); //Users
remove_menu_page( 'tools.php' ); //Tools
remove_menu_page( 'options-general.php' ); //Settings
}
add_action( 'admin_menu', 'remove_menus' );
?>
これは Bill Ericksonのコア機能 pluginからのコードのナイスチャンクです。
/**
* Remove Menu Items
* @since 1.0.0
*
* Remove unused menu items by adding them to the array.
* See the commented list of menu items for reference.
*
*/
function ni_remove_menus () {
global $menu;
// Example:
//$restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins'));
end ($menu);
while (prev($menu)){
$value = explode(' ',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:"" , $restricted) {
unset($menu[key($menu)]);
}
}
}
add_action( 'admin_menu', 'ni_remove_menus' );
制限付き配列のコメントを外し、非表示にするメニュー項目を含めます。例には参照用のすべてのメニュー項目が含まれています。