/

管理画面外でadmin barが表示されないようにする方法【wordpress】

管理画面外で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よりもこちらの方が良く使われるのではないかと思います。