2026年5月20日

2026年5月20日

WordPressの管理バーをフロントエンドで非表示にする方法

はじめに

WordPressにログイン中は画面上部に管理バー(ツールバー)が表示されます。フロントエンドのデザインを崩したくない場合や、一般ユーザーには非表示にしたい場合に管理バーを無効化できます。

全ユーザーの管理バーを非表示

// functions.php — 全ログインユーザーの管理バーを非表示
add_filter('show_admin_bar', '__return_false');

または管理画面から:

管理画面 → ユーザー → プロフィール
→「ツールバー: サイトを見るときにツールバーを表示する」のチェックを外す

ロール別に非表示

// functions.php — 管理者以外の管理バーを非表示
add_action('after_setup_theme', function() {
    if (!current_user_can('edit_posts')) {
        show_admin_bar(false);
    }
});

特定ページのみ非表示

// functions.php — トップページのみ管理バーを非表示
add_action('after_setup_theme', function() {
    if (is_front_page()) {
        show_admin_bar(false);
    }
});

CSSで視覚的に非表示(管理バー自体は保持)

// functions.php — CSSで管理バーを隠す(機能は維持)
add_action('wp_head', function() {
    if (!current_user_can('manage_options') && is_user_logged_in()) {
        echo '<style>#wpadminbar { display: none !important; }
              html { margin-top: 0 !important; }
              * html body { margin-top: 0 !important; }</style>';
    }
});

管理バーのメニューをカスタマイズ

// functions.php — 管理バーからメニューを削除
add_action('admin_bar_menu', function($wp_admin_bar) {
    // WordPressロゴメニューを削除
    $wp_admin_bar->remove_node('wp-logo');

    // 「+新規」メニューを削除
    $wp_admin_bar->remove_node('new-content');

    // コメントアイコンを削除
    $wp_admin_bar->remove_node('comments');
}, 999);

管理バーにカスタムメニューを追加

// functions.php — 管理バーにカスタムリンクを追加
add_action('admin_bar_menu', function($wp_admin_bar) {
    if (!is_user_logged_in()) return;

    $wp_admin_bar->add_node([
        'id'    => 'my-site-link',
        'title' => 'マイページ',
        'href'  => home_url('/my-account/'),
        'meta'  => ['class' => 'my-menu-item'],
    ]);
}, 999);

WP-CLIでユーザーごとに管理バー設定を変更

# 特定ユーザーの管理バーを無効化
wp user meta update {user_id} show_admin_bar_front 'false'

# 全ユーザーの管理バーを無効化
wp user list --field=ID | xargs -I {} wp user meta update {} show_admin_bar_front 'false'

注意事項

  • show_admin_bar(false)after_setup_theme フックで呼び出してください
  • 管理バーを非表示にするとフロントエンドでの編集ショートカットも使えなくなります
  • CSSで非表示にする場合は html { margin-top: 0 !important; } も必ず追加してください

まとめ

最も簡単な方法は add_filter('show_admin_bar', '__return_false') の1行です。ロール別に制御するには after_setup_theme フック内で current_user_can() を使って show_admin_bar(false) を呼び出してください。

お気軽にご相談ください

お見積りへ お問い合わせへ