【WordPress】管理者にのみ管理バーを表示する方法

WordPressサイトの管理バーを管理者にのみ表示する方法を解説します。特定のユーザー権限とユーザー設定に基づいて管理バーの表示を制御する方法を紹介します。

関数の定義

まず、管理バーの表示を制御するカスタム関数を定義します。この関数では、現在のユーザーが管理者かどうかを確認し、さらに管理バーの表示設定を考慮します。

function my_show_admin_bar() {
    $result = false;

    // 現在のユーザーが「administrator」権限を持っているかどうかを確認
    if (current_user_can('administrator')) {
        // 現在のユーザーのIDを取得
        $user_id = get_current_user_id();
        
        // ユーザーの管理バー表示設定を取得
        $show_admin_bar = get_user_meta($user_id, 'show_admin_bar_front', true);
        
        // 管理バー表示設定がオフでない場合
        if ($show_admin_bar !== 'false') {
            $result = true;
        }
    }

    return $result;
}

フィルターに関数を追加

次に、add_filter を使用して show_admin_bar フィルターにカスタム関数を追加します。このフィルターにより、管理バーの表示が制御されます。

add_filter('show_admin_bar', 'my_show_admin_bar');

完全なコード

以下が完全なコードです。このコードをテーマの functions.php ファイルに追加してください。

function my_show_admin_bar() {
    $result = false;

    // 現在のユーザーが「administrator」権限を持っているかどうかを確認
    if (current_user_can('administrator')) {
        // 現在のユーザーのIDを取得
        $user_id = get_current_user_id();
        
        // ユーザーの管理バー表示設定を取得
        $show_admin_bar = get_user_meta($user_id, 'show_admin_bar_front', true);
        
        // 管理バー表示設定がオフでない場合
        if ($show_admin_bar !== 'false') {
            $result = true;
        }
    }

    return $result;
}
add_filter('show_admin_bar', 'my_show_admin_bar');

まとめ

この手順に従うことで、WordPressサイトの管理バーを管理者にのみ表示することができます。カスタム関数を使用し、ユーザーの権限と表示設定に基づいて管理バーの表示を制御する方法を学びました。これにより、サイトの管理をより効率的に行うことができるでしょう。