wordpressで管理バー(admin bar)を権限別に表示・非表示設定をする
スポンサーリンク

様々なサイトでwordpressの管理バー(admin bar)を消す方法を書いておられると思います。
また、権限ごとで管理バーを表示・非表示の切り替えを行う際にはプラグインを利用するように書いてあるサイトがほとんどでした。
ここでは少し発展させてプラグインを使わずに既存の権限グループ(管理者・編集者・投稿者・寄稿者・購読者)別に表示・非表示を分ける方法を紹介します。

スポンサーリンク

念の為...

私のサイトでは似たようなものとして、特定のユーザーグループのダッシュボードアクセスを制限する「Remove Dashboard Access」というプラグインを紹介しています。

念の為違いを書いておくと

できること\どの記事この記事プラグイン使用
管理バーの表示を消す×
ダッシュボードへのアクセスを禁止する×

このようになっています。もし、ダッシュボードへのアクセス禁止についてを知りたい方はこちらから飛んでいただけます。

両方を併用することで、管理バーが表示させず、さらにURLによるダッシュボーとへのアクセスを禁止できます。おすすめです。

スポンサーリンク

管理バーを表示するグループ

ここでは特定の権限グループ以上の人に対して管理バーを表示するようにします。
これ以降のコードは見出しにある権限グループの人のみがログインしたことによって管理バーが出現するようになります。

ここにあるコードをお使いのテーマのfunctions.phpに追記してください。
(/wp-content/themes/<使っているテーマ>/functions.php)

管理者のみ管理バー(admin bar)表示

php コピー

if (! current_user_can('delete_users')){
    show_admin_bar(false);
}

管理者・編集者で管理バー(admin bar)表示

php コピー

if (! current_user_can('delete_private_posts')){
    show_admin_bar(false);
}

管理者・編集者・投稿者で管理バー(admin bar)表示

php コピー

if (! current_user_can('publish_posts')){
    show_admin_bar(false);
}

管理者・編集者・投稿者・寄稿者で管理バー(admin bar)表示

php コピー

if (! current_user_can('edit_posts')){
    show_admin_bar(false);
}

管理者・編集者・投稿者・寄稿者・購読者で管理バー(admin bar)表示

これについてはやる必要性はないですが、整合性を取るために念の為載せときます。

php コピー

if (! current_user_can('read')){
    show_admin_bar(false);
}
スポンサーリンク

コードの解説(スキップ可)

php

if (! current_user_can('publish_posts')){
    show_admin_bar(false);
}

※コードの例(管理者・編集者・投稿者)

それぞれのコードを見るとわかると思いますが、変化している部分は一行目の

current_user_can(今閲覧しているユーザーが...できる)

の後の部分(例ではpublish_posts)だというのはお分りいただけると思います。

そのあとに書いてあるもの(例ではpublish_posts)はwordpressにおける権限を表しています。

なので、例のコードの一部

if (! current_user_can('publish_posts'))は

もし、今のユーザーが投稿を公開できないのであれば(!で否定)

と考えることができます。

その次の行の

show_admin_bar(false);は

管理バーを表示させない(falseでいいえ)

という意味です。

つまり、権限をうまく設定することができればここの例で書いた権限以外でも管理バーへのアクセスを制限することができます。(ex. 管理者のみのアクセスだったら「delete_plugin」でもいけます。)

権限はPCでダッシュボードのページにアクセスした際に左側に出てくる項目と思っていただけるとわかりやすいと思います。

デフォルトのwordpressでの権限について知りたい方は「参考サイト」を参照してみてください。

関係する記事

ここでは説明していないことが書いてあります。ぜひ参考にしてください。

ダッシュボードへのアクセス制限をしたい

「Remove Dashboard Access」というプラグインを使うことでダッシュボードへのアクセスを禁止することが可能です。

https://sukiburo.jp/code/wordpress/specific-user-can-access-dashboard-plugin/

参考サイト

https://ja.support.wordpress.com/user-roles/
(wordpressにおける権限について書いてあります)

以上です。ご覧いただきありがとうございました。

スポンサーリンク
おすすめの記事