【wordpress】プラブインなしで管理バーを権限別に表示・非表示にする

【wordpress】プラブインなしで管理バーを権限別に表示・非表示にする

様々なサイトで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」というプラグインを使うことでダッシュボードへのアクセスを禁止することが可能です。

【×プラブイン】wordpressの管理バー(admin bar)を権限別に表示・非表示設定をする
【×プラブイン】wordpressの管理バー(admin bar)を権限別に表示・非表示設定をする

参考サイト

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

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

関連記事

【wordpress】ウィジェットにログインフォームをプラグインなしキャプチャありで設置する

【wordpress】ウィジェットにログインフォームをプラグインなしキャプチャありで設置する

Javascript/Typescript(+react等)開発環境を簡単に構築するスクリプト作った

Javascript/Typescript(+react等)開発環境を簡単に構築するスクリプト作った

【wordpress】ユーザーのダッシュボードアクセスを制限するプラグイン【Remove Dashboard Access】

【wordpress】ユーザーのダッシュボードアクセスを制限するプラグイン【Remove Dashboard Access】

【泣けるほど簡単】投稿内に自分しか見えないメモをプラグインなしで実装する方法

【泣けるほど簡単】投稿内に自分しか見えないメモをプラグインなしで実装する方法

【wordpress】登録・ログインフォームをプラグインなし・キャプチャありで実装する

【wordpress】登録・ログインフォームをプラグインなし・キャプチャありで実装する

【失敗談アリ】テックアカデミーのAIコースを徹底レビューする

【失敗談アリ】テックアカデミーのAIコースを徹底レビューする

【wordpress】ログイン・非ログイン時で表示する内容を変える方法

【wordpress】ログイン・非ログイン時で表示する内容を変える方法