初期状態のWordPress管理画面のメニューを削除する方法についてです。
何もプラグインを導入していない場合は下記の画像のようなメニューになっているかと思います。
メニューを消す場合はfunctions.phpに下記のコードを記述します。
※すべてのメニューが消えてしまう為、コードを直接編集できる外観はコメントアウトしています。
※すべてのユーザーに適用されます。
function remove_menus(){
remove_menu_page( 'index.php' ); // ダッシュボード
remove_menu_page( 'edit.php' ); // 投稿
remove_menu_page( 'upload.php' ); // メディア
remove_menu_page( 'edit.php?post_type=page' ); // 固定ページ
remove_menu_page( 'edit-comments.php' ); // コメント
// remove_menu_page( 'themes.php' ); // 外観
remove_menu_page( 'plugins.php' ); // プラグイン
remove_menu_page( 'users.php' ); // ユーザー
remove_menu_page( 'tools.php' ); // ツール
remove_menu_page( 'options-general.php' ); // 設定
}
// 'admin_menu' WordPress管理画面の管理者メニュー
add_action( 'admin_menu', 'remove_menus' );
WordPress管理画面→外観→テーマファイルエディター→functions.phpに上記のコードを記述します。
コード記述後、更新で外観のみ表示されていればコードは適用されています。
ユーザーについて
ユーザー別に制限をかける方法。
ユーザー | 内容 |
---|---|
管理者 administrator | サイト内すべての管理機能を使用できるユーザー。 |
編集者 editor | すべての投稿を発行、管理できるユーザー。 |
投稿者 author | 自身の投稿を発行、管理できるユーザー。 |
寄稿者 contributor | 自身の投稿を編集や管理はできるが、発行はできないユーザー。 |
購読者 subscriber | 自身のプロフィール管理のみを実行できるユーザー。 |
下記コードは管理者以外はプロフィール以外は編集することができない制限をかける設定になります。
非表示にする設定は!current_user_can(”)の値にユーザーを追加することで制限することができます。
function remove_menu() {
if ( !current_user_can('administrator') ) {
//管理者以外は下記メニューを非表示
remove_menu_page( 'index.php' ); //ダッシュボード
remove_menu_page( 'edit.php' ); //投稿
remove_menu_page( 'upload.php' ); //メディア
remove_menu_page( 'edit.php?post_type=page' ); //固定
remove_menu_page( 'edit-comments.php' ); //コメント
remove_menu_page( 'themes.php' ); //外観
remove_menu_page( 'plugins.php' ); //プラグイン
remove_menu_page( 'users.php' ); //ユーザー
remove_menu_page( 'tools.php' ); //ツール
remove_menu_page( 'options-general.php' ); //設定
}
}
add_action( 'admin_menu', 'remove_menu' );
参考例として「編集者」としてログインして編集できる内容がプロフィールのみになっているとコードでの設定はOKになります。
プラグインの表示制限
プラグインを個別に非表示にする方法。
参考例として「All in One SEO」を非表示するやり方についてです。
WordPress管理画面→All in One SEOにマウスを乗せると、下にURLが表示されるので?page=aioseoの部分のaioseoが「All in One SEO」を非表示するために必要な文字になります。
remove_menu_page( ‘aioseo’ )をfunctions.phpに記述することで非表示にできます。
function remove_plugin_menu() {
remove_menu_page( 'aioseo' ); //All in One SEOを非表示
}
add_action( 'admin_menu', 'remove_plugin_menu' );