様々なサイトでwordpressの管理バー(admin bar)を消す方法を書いておられると思います。
しかし、権限ごとで管理バーを表示・非表示の切り替えを行う際にはプラグインを利用するように書いてあるサイトがほとんどでした。
ここでは少し発展させて、プラグインを使わずに既存の権限グループ(管理者・編集者・投稿者・寄稿者・購読者)別に管理バーの表示・非表示を分ける方法を紹介します。
念の為に確認します
私のサイトでは似たようなものとして、特定のユーザーグループのダッシュボードアクセスを制限する「Remove Dashboard Access」というプラグインを紹介しています。
念の為違いを書いておくと
できること\どの記事 | この記事 | プラグイン使用 |
管理バーの表示を消す | ○ | × |
ダッシュボードへのアクセスを禁止する | × | ○ |
このようになっています。もし、ダッシュボードへのアクセス禁止についてを知りたい方はこちらから飛んでいただけます。
両方を併用することで、管理バーが表示させず、さらにURLによるダッシュボーとへのアクセスを禁止できます。おすすめです。
管理バーを表示するグループ
ここでは特定の権限グループ以上の人に対して管理バーを表示するようにします。
これ以降のコードは、見出しにある権限グループの人以上がログインした際に、管理バーが出現するようになります。
ここにあるコードをお使いのテーマのfunctions.php
に追記してください。
管理者のみ管理バー(admin bar)表示
if (! current_user_can('delete_users')){
show_admin_bar(false);
}
管理者・編集者で管理バー(admin bar)表示
if (! current_user_can('delete_private_posts')){
show_admin_bar(false);
}
管理者・編集者・投稿者で管理バー(admin bar)表示
if (! current_user_can('publish_posts')){
show_admin_bar(false);
}
管理者・編集者・投稿者・寄稿者で管理バー(admin bar)表示
if (! current_user_can('edit_posts')){
show_admin_bar(false);
}
管理者・編集者・投稿者・寄稿者・購読者で管理バー(admin bar)表示
if (! current_user_can('read')){
show_admin_bar(false);
}
これについてはやる必要性はないですが、整合性を取るために念の為載せときます。
コードの解説(スキップ可)
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」でもいけます。)
権限はパソコンでダッシュボードのページにアクセスした際に左側に出てくる項目と思っていただけるとわかりやすいと思います。
関係する記事
ここでは説明していないことが書いてあります。ぜひ参考にしてください。
ダッシュボードへのアクセス制限をしたい
「Remove Dashboard Access」というプラグインを使うことでダッシュボードへのアクセスを禁止することが可能です。
参考サイト
https://ja.support.wordpress.com/user-roles/
(wordpressにおける権限について書いてあります)
以上です。ご覧いただきありがとうございました。