管理画面外でadmin barが表示されないようにする方法【wordpress】
wordpressでadmin barが表示されないようにする方法を紹介します。
「wp_insert_userなどでユーザーの追加を行ったのは良いけどアドミンバーが邪魔」
という場合に有効です。
今から追加するユーザーに適応する方法とすでに追加済みのユーザーに適応する方法で2種類紹介します。
追加予定のユーザーに適応
wp_insert_userで追加予定の場合です。
管理画面やユーザーが直接登録する場合は「追加済みのユーザーに適応」の方を参考にしてください。
$user_args = ['user_login' => $user_login,'user_pass' => $user_pass,'role' => 'subscriber','show_admin_bar_front' => 'false'];$user_id = wp_insert_user( $user_args );
「show_admin_bar_front」を設定してあげると非表示にすることができます。
注意点としてboolean型のfalseではなく、文字列で「false」と指定してあげてください。
追加済みのユーザーに適応
すでに追加済みのユーザーに適応するには「usermeta」テーブルの「show_admin_bar_front」を変更する必要があります。
$wpdb->updateとやってもいいですが、関数が用意されていますので、それを利用しましょう。
「update_user_meta」を使用します。
update_user_meta( $user_id, 'show_admin_bar_front', 'false' );
「update_user_meta」の詳細な使い方はリファレンスを参考にしてください。
指定したユーザーIDの指定したメタキーを指定した値に変更しています。
こちらでも同様にboolean型のfalseではなく、文字列型の「false」を使用してください。
管理画面やユーザーが直接登録する場合は「user_register」にフックしてあげると良いです。
「user_register」は新規で登録された後に呼び出されるフックです。基本的にユーザーメタ情報を登録するのに使用します。
add_action( 'user_register', function( $user_id ) {update_user_meta( $user_id, 'show_admin_bar_front', 'false' );}, 10, 1 );
wp_insert_userよりもこちらの方が良く使われるのではないかと思います。