こんにちは、WPホームページ研究所の運営サポートチーム(@WP_LABO)です。
ワードプレスには「ログインすると表示される管理バー」があります。管理バーは管理画面側でも表示されて、ウェブサイト側を開いても表示される下記の黒いバーです。念のため画像を貼っておきますね。
▼管理画面側
▼ウェブサイト側
バーをサイト側に表示させるかどうかは「各ユーザーごとで設定可能」です。ユーザー側の設定に以下の項目があるのでウェブサイト側へ出したくなければチェックマークを外すだけで表示されなくなります。
ウェブサイト側に出るといってもログインしていないと表示されないので運営上の問題はありません。たとえば会員サイトを運営すると購読者は管理画面にログインした扱いになるので「管理バーの表示をどうするか?」といった考慮も必要になってきますよね。そういった場面で行える細々としたカスタマイズです。
状況によっては「ツールバーは出したままで特定の項目だけを非表示にしたい」といったご要望もございます。本日は管理バーの項目を1つずつ非表示にする方法をご紹介いたします。
ワードプレスの管理バーに表示される各メニューを非表示にカスタマイズする方法
すでに管理バーのカスタマイズ方法はあらゆるサイトに掲載されています。ただ、内容が古くなったままのものがあって一部非表示にできなかったりと数十分間戸惑ったのでメモとして制御方法を残しておきます。
function remove_admin_bar_menu_control( $wp_admin_bar ) {
$wp_admin_bar->remove_menu( 'wp-logo' ); // WordPressロゴ
$wp_admin_bar->remove_menu( 'site-name' ); // サイト名
$wp_admin_bar->remove_menu( 'view-site' ); // サイト名 → サイトを表示
$wp_admin_bar->remove_menu( 'dashboard' ); // サイト名 → ダッシュボード(ウェブサイト側)
$wp_admin_bar->remove_menu( 'themes' ); // サイト名 → テーマ(ウェブサイト側)
$wp_admin_bar->remove_menu( 'customize' ); // サイト名 → カスタマイズ(ウェブサイト側)
$wp_admin_bar->remove_menu( 'comments' ); // コメント
$wp_admin_bar->remove_menu( 'updates' ); // 更新
$wp_admin_bar->remove_menu( 'view' ); // 投稿を表示
$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-link' ); // 新規 → リンク
$wp_admin_bar->remove_menu( 'new-page' ); // 新規 → 固定ページ
$wp_admin_bar->remove_menu( 'new-user' ); // 新規 → ユーザー
$wp_admin_bar->remove_menu( 'my-account' ); // マイアカウント
$wp_admin_bar->remove_menu( 'user-info' ); // マイアカウント → プロフィール
$wp_admin_bar->remove_menu( 'edit-profile' ); // マイアカウント → プロフィール編集
$wp_admin_bar->remove_menu( 'logout' ); // マイアカウント → ログアウト
$wp_admin_bar->remove_menu( 'search' ); // 検索(ウェブサイト側)
}
add_action('admin_bar_menu', 'remove_admin_bar_menu_control', 111);
もしプラグインで追加されたメニューを非表示にしたいなら該当箇所のhtmlを調べればOKです。
id="wp-admin-bar-new-plugin-name"
というソースがあるので「wp-admin-bar-」を抜いた「new-plugin-name」の部分を指定しましょう。
//管理バーにプラグインで追加された項目が入っている場合
function remove_admin_bar_menu_control_plus( $wp_admin_bar ) {
$wp_admin_bar->remove_menu( 'new-plugin-name' );
}
add_action('admin_bar_menu', 'remove_admin_bar_menu_control_plus', 111);
制御方法は以上です。おまけとして「管理者権限のユーザー」がログインしていると管理バーにすべてを表示させて「管理者権限以外のユーザー」がログインしていると管理バーの非表示をする場合は以下です。
//管理バーの要素を非表示に設定する
function remove_admin_bar_menu_control( $wp_admin_bar ) {
//ログインユーザーが管理者権限の場合は何もしない
if ( current_user_can( 'administrator' ) ) {
return;
}
//ログインユーザーが管理者権限以外の場合は非表示を実行
$wp_admin_bar->remove_menu( 'wp-logo' ); // WordPressロゴ
$wp_admin_bar->remove_menu( 'site-name' ); // サイト名
$wp_admin_bar->remove_menu( 'view-site' ); // サイト名 → サイトを表示
$wp_admin_bar->remove_menu( 'dashboard' ); // サイト名 → ダッシュボード(ウェブサイト側)
$wp_admin_bar->remove_menu( 'themes' ); // サイト名 → テーマ(ウェブサイト側)
$wp_admin_bar->remove_menu( 'customize' ); // サイト名 → カスタマイズ(ウェブサイト側)
$wp_admin_bar->remove_menu( 'comments' ); // コメント
$wp_admin_bar->remove_menu( 'updates' ); // 更新
$wp_admin_bar->remove_menu( 'view' ); // 投稿を表示
$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-link' ); // 新規 → リンク
$wp_admin_bar->remove_menu( 'new-page' ); // 新規 → 固定ページ
$wp_admin_bar->remove_menu( 'new-user' ); // 新規 → ユーザー
$wp_admin_bar->remove_menu( 'my-account' ); // マイアカウント
$wp_admin_bar->remove_menu( 'user-info' ); // マイアカウント → プロフィール
$wp_admin_bar->remove_menu( 'edit-profile' ); // マイアカウント → プロフィール編集
$wp_admin_bar->remove_menu( 'logout' ); // マイアカウント → ログアウト
$wp_admin_bar->remove_menu( 'search' ); // 検索(ウェブサイト側)
}
add_action('admin_bar_menu', 'remove_admin_bar_menu_control', 111);
ワードプレスはさまざまな状況に応じて自由に制御ができるので便利ですね。
まとめ
本日はワードプレスの管理バーをカスタマイズする方法をご紹介いたしました。ワードプレスは柔軟なシステムなので細かいカスタムができますが細部まで手を加えると意外と手間がかかります。管理画面のカスタマイズは慣れるとすぐできますが調べるのに時間を要するのでぜひメモとしてご活用くださいませ。
最新式の無料プラグインを事前公開
WordPressは公式サイトに登録済みのプラグインだけで全機能を補足しきれません。当サイトでは使いやすさを追求した魅惑的なプラグインを無料でダウンロードいただけます。運営ホームページのマーケティング力をさらに高めるチャンスです。まずは無料でDLしてお試しくださいませ。
→ 改良されたプラグインを確認する