例えば、ワードプレスで会員制サイトを作成しているときに、Adminバーが表示されていると、画面に表示されて邪魔になるだけでなく、ログインページのURLやワードプレスの管理画面へのリンクを開かれてしまい、ワードプレスの管理画面に入ることができてしまいます。
![](https://eguweb.jp/wp-content/uploads/c64b2e352f80c6619181f3820082231a-1-1024x132.jpg)
![](https://eguweb.jp/wp-content/uploads/5fe09ee5bf2311c52ca068c66524fe73.jpg)
通常は/wp-login.phpまたは/wp-adminでログインページに遷移します。
公開権限が無いユーザーはadminバーを非表示にする
投稿ができないユーザーは「show_admin_bar」をfalseにして非表示にしてしまいます。
add_filter( 'show_admin_bar' , 'hide_admin_bar' );
function hide_admin_bar( $content ) {
return ( current_user_can( 'publish_posts' ) ? $content : false );
}
![](https://eguweb.jp/wp-content/uploads/b3fa7bd882bbc94f44e7e00ac4e3f961.jpg)
管理者ログイン
![](https://eguweb.jp/wp-content/uploads/c64b2e352f80c6619181f3820082231a-1024x399.jpg)
購読者ログイン
![](https://eguweb.jp/wp-content/uploads/1d845da067c3fa32394eda3636bcfa89.jpg)
Adminバー(管理バー)が消えました!
管理画面からのログインを阻止する
もしログインページを開いてしまった場合は、管理者権限が無ければログインできないように設定ができます。
add_action( 'auth_redirect', 'contributor_redirect' );
function contributor_redirect( $user_id ) {
$user = get_userdata( $user_id );
if ( ! $user->has_cap( 'publish_posts' ) ) {
wp_redirect( home_url() );
echo 'こちらのアカウントではログインできません。';
exit();
}
}
ログインを試みようとすると、警告画面が出るようになりました。
![](https://eguweb.jp/wp-content/uploads/574f4e2d542f25daf4f046a066809bbf.jpg)
そのまま無視して開こうとすると・・・
![](https://eguweb.jp/wp-content/uploads/5f17415b1014034fb58570c9f5de5539.jpg)
トップページにリダイレクトされて、管理画面へ入ることはできないようになります。
![](https://eguweb.jp/wp-content/uploads/6f8c486ce1b4bb33529c41c063a1dfd1-1.jpg)
まとめ
これで、購読者が管理画面に入ることはできなくなりました。
とはいえ、このままだと購読者ユーザーでも「ログインページ」に入ることは可能です。
例えば、「ログインページ」そのものに入られたくない・・・という場合については、ログインページの前にベーシック認証(手前にポップアップ・IDとパスワードを入力する画面を表示させる)、ログインURLそのものを標準のURLから変更させる・・・などの対策が必要になるかと思います。
ご参考下さい😃