よくあるカスタマイズですが、サイドバーやアドミンバーのメニュー項目を削ってみたいと思います。
コード
サイドバー
function have_a_sidebar_rm_sidebar_menu_exclude_admin() {
// ログイン時
if ( is_user_logged_in() ) {
$current_user = wp_get_current_user();
// 管理者以外
if ( ! in_array( 'administrator', $current_user->roles, true ) ) {
remove_menu_page( 'edit-comments.php' ); // コメント
// remove_menu_page( 'plugins.php' ); // プラグイン
remove_menu_page( 'tools.php' ); // ツール
remove_menu_page( 'options-general.php' ); // 設定
}
}
}
add_action( 'admin_menu', 'have_a_sidebar_rm_sidebar_menu_exclude_admin', 999 );
まずはサイドバーのサンプル。
- 管理者以外のユーザに対して
- コメント・プラグイン・ツール・設定を隠す
Smart Custom Fields の設定画面を開くためには manage_options
の権限が必要ですが、この権限を付けると「ツール」や「設定」の項目が表示されてしまうので、それを隠すのが主目的です。
プラグインは表示されないのでコメントアウト。
アドミンバー
function foobar_rm_adminbar_menu_exclude_admin( $wp_admin_bar ) {
// ログイン時
if ( is_user_logged_in() ) {
$current_user = wp_get_current_user();
// 管理者以外
if ( ! in_array( 'administrator', $current_user->roles, true) ) {
$wp_admin_bar->remove_menu( 'wp-logo' ); // WordPressロゴ
$wp_admin_bar->remove_menu( 'about' ); // WordPressロゴ / WordPressについて
$wp_admin_bar->remove_menu( 'wporg' ); // WordPressロゴ / WordPress.org
$wp_admin_bar->remove_menu( 'documentation' ); // WordPressロゴ / ドキュメンテーション
$wp_admin_bar->remove_menu( 'support-forums' ); // WordPressロゴ / サポート
$wp_admin_bar->remove_menu( 'feedback' ); // WordPressロゴ / フィードバック
$wp_admin_bar->remove_menu( 'updates' ); // 更新
$wp_admin_bar->remove_menu( 'comments' ); // コメント
$wp_admin_bar->remove_menu( 'new-content' ); // 新規投稿
$wp_admin_bar->remove_menu( 'new-post' ); // 新規投稿 / 投稿
$wp_admin_bar->remove_menu( 'new-media' ); // 新規投稿 / メディア
$wp_admin_bar->remove_menu( 'new-page' ); // 新規投稿 / 固定
$wp_admin_bar->remove_menu( 'new-user' ); // 新規投稿 / ユーザー
$wp_admin_bar->remove_menu( 'dashboard' ); // サイト名 / ダッシュボード (公開側)
$wp_admin_bar->remove_menu( 'search' ); // 検索 (公開側)
// $wp_admin_bar->remove_menu( 'my-account' ); // マイアカウント
$wp_admin_bar->remove_menu( 'user-info' ); // マイアカウント / プロフィール
$wp_admin_bar->remove_menu( 'edit-profile' ); // マイアカウント / プロフィール編集
}
}
}
add_action( 'admin_bar_menu', 'foobar_rm_adminbar_menu_exclude_admin', 999, 1 );
続いてアドミンバーについて。
- 管理者以外のユーザに対して
- 以下を隠す
- WordPress のロゴや WordPress へのサイトのリンク
- 更新(アップデート)
- コメント
- 投稿の新規追加等
- 自身のアカウントのプロフィール編集
- プロフィールそのものを隠すとログアウトも非表示になってしまうので
my-account
は残す
- プロフィールそのものを隠すとログアウトも非表示になってしまうので
- サイト名・検索 (公開側)
ログインはさせるが管理画面側の機能は殆ど触らせないようなケースの想定です。