WordPress の管理バーを削除・非表示にする方法

WordPress の管理バーは、ログイン中のユーザーがフロントエンドを表示するたびに、サイトの上部に表示されます。多くのサイト運営者にとって、これはレイアウトを乱したり、クライアントのアカウントに不要な操作権限を与えたりする原因になります。本ガイドでは、設定での切り替え、PHP スニペット、権限グループ別のコード、プラグインという 4 つの方法を取り上げ、状況に合った適切な対処法を選べるようにします。

要点: 手軽な選択肢は 3 つあります。(1) 自分のアカウントだけ対象にするなら、ユーザー → あなたのプロフィールサイトを見るときにツールバーを表示する のチェックを外す。(2) ログイン中の全ユーザーから管理バーを削除するなら、functions.php に 1 行追加する。(3) コードを書かずに済ませたいなら、Auto Hide Admin Bar プラグインをインストールする。購読者と寄稿者には非表示にしつつ、編集者と管理者には表示したままにしたい場合は方法 3 を使いましょう。

なぜ WordPress の管理バーが表示されるのか(そしていつ削除すべきか)

WordPress はデフォルトで、ログイン中のすべてのユーザーに対してフロントエンドに管理バーを表示します。これは show_admin_bar() 関数によって制御されており、この関数は初期状態ですべての権限グループに対して true を返します。管理バーを削除したくなる一般的な理由は次のとおりです。

  • フロントエンドのレイアウトの衝突 — 管理バーは上部に固定ツールバーを追加するため、カスタムナビゲーションやテーマのヘッダーと干渉することがあります。
  • クライアントアカウントの整理 — 管理者権限を必要としない購読者や寄稿者のアカウントが、公開サイト上で管理用のリンクを目にするべきではありません。
  • 気が散らないプレビュー — デザイナーやテーマ開発者は、公開ページを確認する際にすっきりした表示領域を望むことがよくあります。

どの方法が自分に合っているか?

あなたの状況 最適な方法
自分のアカウントだけ非表示にしたい 方法 1: 設定での切り替え
購読者と寄稿者には非表示にし、編集者と管理者には表示したままにしたい 方法 3: 権限グループ別の PHP コード
ログイン中の全ユーザーから恒久的に削除したい 方法 2: functions.php スニペット
コードを書きたくない 方法 4: プラグイン

方法 1: WordPress の設定で管理バーを非表示にする(ユーザー単位の切り替え)

最も手早い選択肢で、コードもプラグインもサイト全体への変更も不要です。各ユーザーは自分のプロフィールページから、自分のアカウントの管理バーを切り替えられます。

WordPress ダッシュボードにログインします。

WordPress ダッシュボード

ユーザー → あなたのプロフィール に移動し、ツールバー セクションまでスクロールして、サイトを見るときにツールバーを表示する のチェックを外し、プロフィールを更新 をクリックします。

「Show Toolbar when viewing site」オプションのチェックを外す

保存すると、そのアカウントに限りフロントエンドから管理バーが消えます。WordPress の管理画面内では引き続き表示されます。バックエンドのツールバーには、依然として役立つステータスメッセージや更新通知が含まれているからです。この設定は wp_usermeta 内の show_admin_bar_front というユーザーメタキーとして保存され、WordPress 6.7 およびそれ以前のすべてのバージョンで機能します。

方法 2: PHP コードですべてのユーザーから管理バーを削除する

管理バーをグローバルに削除する場合 — 権限グループに関係なくログイン中の全ユーザーから削除する場合 — テーマの functions.php に 1 つのフィルターを追加します。このファイルは wp-content/themes/your-theme/functions.php にあります。ファイルマネージャーで右クリックするか、外観 → テーマファイルエディター から開いてください。

コード追加のためテーマの functions.php ファイルを編集

すべてのユーザーから管理バーを削除するには、この行を functions.php ファイルに追加します。

add_filter( 'show_admin_bar', '__return_false' );
上部の管理バーを無効化するために functions.php ファイルにコードを追加。
注:起こりうるエラーを防ぐため、コードの変更はまず本番サイトのクローンで行ってから、最終的に本番サイトに実装することをおすすめします。まさにそのためにあるのが WP Staging です。

これは WordPress の show_admin_bar フィルターにフックします。無条件に false を返すことで、フロントエンド上のすべての権限グループに対してツールバーを無効化します。これにより公開サイトから管理バーが削除されますが、wp-admin ダッシュボードのページ内の管理バーには影響しません。

方法 3: 特定のユーザー権限グループに対して管理バーを非表示にする

方法 2 を使った後で最もよく寄せられる質問が「スニペットを実行したら、自分の管理者アカウントでも管理バーが見えなくなった」というものです。解決策は、グローバルに適用するのではなく、権限グループを対象に絞ってスニペットを適用することです。

WP STAGING のサポート窓口で、このテーマについて最も多い要望は、管理者権限を必要としないクライアントアカウントに対して管理バーを非表示にすることです。方法 3 はまさにそれを実現します。クライアントには訪問者として見えるサイトを表示しつつ、サイト運営者の管理者アカウントには引き続きツールバーを表示します。

代わりに、これを functions.php に追加します。

add_action( 'after_setup_theme', function() {
    $user = wp_get_current_user();
    if ( in_array( 'subscriber', (array) $user->roles, true )
        || in_array( 'contributor', (array) $user->roles, true ) ) {
        show_admin_bar( false );
    }
} );

これは、現在のユーザーが購読者または寄稿者である場合に限り show_admin_bar( false ) を呼び出します。編集者、投稿者、管理者には引き続き通常どおり管理バーが表示されます。

管理者を除くすべての権限グループに対して管理バーを非表示にするには、代わりに manage_options 権限のチェックを使います。

add_action( 'after_setup_theme', function() {
    if ( ! current_user_can( 'manage_options' ) ) {
        show_admin_bar( false );
    }
} );

manage_options は、標準的な WordPress インストールにおいて管理者を他のすべての権限グループと区別する権限です。

方法 4: プラグインを使って管理バーを削除する

コードを書かない方法を好むなら、Auto Hide Admin Bar プラグインが管理バーを自動的に非表示にし、ユーザーがカーソルを画面上部に動かすと再びスライド表示します。

WordPress ダッシュボードにログインし、プラグイン → 新規プラグインを追加 に移動します。

「Add Plugin」をクリックして Auto Hide Admin Bar プラグインをインストール

Auto Hide Admin Bar を検索し、今すぐインストール をクリックしてから、プラグインを 有効化 します。

Auto Hide Admin Bar プラグインをインストールして有効化

プラグインの設定ページを開いて、どの権限グループに管理バーを表示するかを設定し、スライド表示の動作を調整します。

Auto Hide Admin Bar プラグインで上部バーを無効化

このプラグインは、コードに一切触れずに、必要なときに管理者が管理バーを利用できる状態を保ちたい場合に最適です。

トラブルシューティング: 対処後も管理バーが表示される

上記のいずれかの方法を適用しても管理バーが残る場合は、次の点を順に確認してください。

キャッシュ。 キャッシュプラグインが、管理バーのマークアップを含んだままのキャッシュ済みページを配信していることがあります。変更後はすべてのキャッシュをクリアし、キャッシュをバイパスしてログインした状態でテストしてください。キャッシュプラグインがログアウト済みユーザーに管理バーの CSS を配信していたケースを目にしたことがあります。キャッシュを無効にして対処を検証すれば、それが原因かどうかが確認できます。

テーマまたはプラグインの競合。 functions.php にスニペットを追加してもまだ管理バーが表示される場合、別のプラグインが読み込み順序の後の方で show_admin_bar( true ) を呼び出し、あなたのフィルターを上書きしている可能性があります。他のプラグインを 1 つずつ一時的に無効化して、競合の原因を特定してください。

スニペットを間違ったファイルに記述している。 add_filter( 'show_admin_bar', '__return_false' ) の呼び出しは、wp_head アクションが発火する前に実行される必要があります。これを functions.php ではなくテンプレートファイル内に配置すると、実行が遅すぎる場合があります。

ユーザー単位のプロフィール設定による上書き。 WordPress は、show_admin_bar フィルターの後でユーザー単位のプロフィール設定を適用します。あるユーザーのプロフィールで サイトを見るときにツールバーを表示する にチェックが入っていると、グローバルフィルターが false を返していても、そのユーザーには管理バーが表示されます。そのユーザーのプロフィールでこのオプションのチェックを外して上書きしてください。

まとめ

WordPress の管理バーは、開発中やサイトを管理する管理者にとっては便利ですが、クライアントアカウントや購読者レベルのユーザーにとっては不要であることがよくあります。本ガイドでは、ユーザー単位の設定での切り替え、サイト全体に適用する functions.php フィルター、権限グループを対象にしたスニペット、プラグインという 4 つの方法を取り上げました。あなたの用途に合った方法を選んでください。

本番サイトでコードを変更する前に、まずステージングのコピーでテストしましょう。WP STAGING を使えば本番サイトを複製できるので、変更が実際のユーザーに届く前に、あらゆる変更を安全に検証できます。

関連記事

Rene Hermenau

著者: Rene Hermenau

著者について: René Hermenau は WP STAGING の創設者です。WordPress のバックアップ、ステージング、移行、データベース処理、安全なデプロイメントワークフローに取り組んでいます。