[WordPress]購読者以外管理バーを表示しない

結論

コピペできる。WordPressバージョン3以降は利用できる。
試した環境は5.1(最新)で、動作確認済み。

/*購読者がログイン時に管理バーを表示しない */
function my_function_admin_bar($content) {
 return ( current_user_can('subscriber') ) ? false : $content;
}
add_filter( 'show_admin_bar' , 'my_function_admin_bar');
current_user_can('subscriber')

の部分は、userが特定できる場合(user_idがわかる場合など)、下記でも可能。
権限をプラグイン等でデフォルトから変更している場合は、できない場合ある。

$user->has_cap( 'edit_posts' )

背景

WordPressで会員登録機能を実装していると、標準のユーザー機能に拡張しているケースが多い。その場合は、購読者権限でユーザーを作成するが、標準のユーザー機能なので、ログインをすると、管理バーが表示されてしまう。Ultimate MemberやWP-Membersなどはこのパターン。Simple Membershipは独自の機能としてユーザーを管理しているので対象外。

ライターさんや編集者以外には管理バーは不要なので、購読者にいらないことさせない・違和感を感じさせないためにも消したい。

コメント