web-dev-qa-db-ja.com

WordPress管理者のメニューを隠す方法

私は管理パネル上のいくつかのメニューを非表示にしたいです:外観、プラグイン、そしてツール。

プラグインなしでそれを隠すには?

そして、どうすれば後で簡単にそれらを隠すことができますか?

2
Lena Queen

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' );  
?>
4
iyrin
1
Soeb Safi

これは 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' );

制限付き配列のコメントを外し、非表示にするメニュー項目を含めます。例には参照用のすべてのメニュー項目が含まれています。

0
sagalbot