2026年7月9日
2026年7月9日
WordPressの管理バー(ツールバー)が表示されないときの原因と直し方
WordPressにログインした状態でサイトを見ると、画面の上部に黒い帯の管理バー(ツールバー)が表示されます。これが表示されないときは、ユーザーの設定、テーマやプラグインのコード、テーマのテンプレート、CSS、キャッシュのどこかに原因があります。
この記事では、管理バーの表示がどう決まるかを確認したうえで、原因を順に探す手順を説明します。内容は2026年10月時点のWordPress 6.8系のソースコードで確認しています。
管理バーが表示される条件
サイト側(管理画面ではないページ)で管理バーを出すかどうかは、WordPressの is_admin_bar_showing() 関数が次の順に判定しています。
- Ajax・REST APIなどの通信や、埋め込み表示のときは表示しない
- ログインしていなければ表示しない
- ログインしていれば、ユーザーのプロフィール設定(
show_admin_bar_front)に従う。設定が無いユーザーは表示する - 最後に
show_admin_barフィルターを通す。テーマやプラグインがここでfalseを返すと、上の結果に関係なく表示しない
この判定が「表示する」になっても、テーマのテンプレートが必要な関数を呼んでいなければ、管理バーのHTMLやCSSが出力されません。以下では、この判定の順と、出力の仕組みに沿って確認します。
プロフィールの設定を確認する
まず、自分のユーザー設定を確認します。
- 管理画面の「ユーザー」→「プロフィール」を開く
- 「ツールバー」の項目にある「サイトを見るときにツールバーを表示する」にチェックが入っているかを確認する
- 入っていなければチェックを入れ、ページ下部の「プロフィールを更新」を押す
WP-CLIでは、ユーザーメタの show_admin_bar_front で確認できます。値は文字列の true か false です。
# ユーザー名 admin の設定を確認する
wp user meta get admin show_admin_bar_front
# 表示する設定にする
wp user meta update admin show_admin_bar_front true
ログイン状態がサイト側に届いているか確認する
管理画面には入れるのに、サイト側を開くとログインしていない扱いになっている場合も、管理バーは表示されません。サイト側でコメント欄に「ログイン中」の表示が出ない、テーマの「編集」リンクが出ない、といった場合はこれに当たります。
よくある原因は、ログインしたURLとサイトのURLのドメイン表記が違うことです。たとえば https://www.example.com/wp-admin/ でログインし、https://example.com/ を見ていると、ログインの情報(Cookie)が別のドメインのものとして扱われます。管理画面の「設定」→「一般」で、「WordPress アドレス (URL)」と「サイトアドレス (URL)」が同じドメイン表記になっているかを確認し、サイトアドレスと同じ表記のURLでログインし直します。
wp option get home
wp option get siteurl
show_admin_bar フィルターで消されていないか確認する
テーマやプラグインのコードで管理バーを消している場合は、プロフィールの設定に関係なく表示されません。次のようなコードが原因です。
<?php
// どちらも、すべてのユーザーの管理バーを消す
add_filter( 'show_admin_bar', '__return_false' );
show_admin_bar( false );
テーマ、プラグイン、mu-plugins の中を検索して、該当する箇所を探します。
cd /var/www/html/wp-content
grep -rn "show_admin_bar" themes/ plugins/ mu-plugins/ 2>/dev/null
自分で書いたコードであれば、行を削除します。「管理者以外の管理バーを消したい」という目的で書かれている場合は、ログイン中のユーザーの権限で分けるように書き換えます。
<?php
// 投稿の編集権限が無いユーザー(購読者など)だけ管理バーを消す
add_filter( 'show_admin_bar', function ( $show ) {
if ( ! current_user_can( 'edit_posts' ) ) {
return false;
}
return $show;
} );
$show をそのまま返すことで、プロフィールの設定も生きたままになります。
プラグインの設定で管理バーを消していることもあります。会員サイト用のプラグインやセキュリティ系のプラグインには、管理バーを非表示にする設定を持つものがあるため、それぞれの設定画面を確認します。
テーマのテンプレートを確認する
管理バーのHTMLとCSSは、テーマのテンプレートが呼ぶ次の関数を通じて出力されます。
| 関数 | 管理バーとの関係 |
|---|---|
wp_head() |
管理バーのCSSを読み込む。無いとHTMLは出ても見た目が崩れる |
wp_body_open() |
管理バーのHTMLを body の直後に出力する |
wp_footer() |
wp_body_open() を呼ばない古いテーマのために、ここでもHTMLを出力する |
WordPressのソースでは、管理バーのHTMLは wp_body_open に優先度0、wp_footer に優先度1000で登録されていて、どちらか先に呼ばれたほうで1回だけ出力されます。そのため、wp_body_open() と wp_footer() の両方が無いテーマでは、管理バーは出力されません。
自作のテーマやテンプレートを編集したテーマでは、header.php と footer.php(ブロックテーマ以外の場合)に次の呼び出しがあるかを確認します。
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<?php wp_body_open(); ?>
<?php /* ここにページの内容 */ ?>
<?php wp_footer(); ?>
</body>
</html>
ブラウザでページのソースを表示して、出力されているかを確かめることもできます。
id="wpadminbar"が無い:HTMLが出力されていない。テンプレートのwp_body_open()とwp_footer()、または前の節のフィルターを確認するid="wpadminbar"はあるがid='admin-bar-css'が無い:CSSが読み込まれていない。wp_head()を確認する
CSSで隠されていないか確認する
HTMLもCSSも出力されているのに見えない場合は、テーマや追加CSSが管理バーを隠している可能性があります。ブラウザの開発者ツール(Windowsは F12)を開き、要素の一覧で #wpadminbar を選んで、適用されているスタイルを確認します。次のような指定があれば、それが原因です。
#wpadminbar {
display: none !important;
}
開発者ツールのスタイルの欄には、指定が書かれたファイル名が表示されます。そのファイル(テーマのCSS、「外観」→「カスタマイズ」の「追加 CSS」、プラグインのCSSなど)から該当する指定を削除します。!important を重ねて上書きするより、元の指定を消すほうが後で混乱しません。
キャッシュを確認する
ページキャッシュの仕組みが、ログインしていない人向けに保存したページをログイン中のユーザーにも返していると、管理バーは表示されません。多くのキャッシュ系プラグインは、初期設定でログイン中のユーザーにはキャッシュを返しませんが、設定を変えている場合や、CDNで「すべてをキャッシュする」設定にしている場合に起きます。
- キャッシュ系プラグインの設定で、ログイン中のユーザーをキャッシュの対象から外す
- CDNを使っている場合は、ログインCookieがある通信や
/wp-admin/をキャッシュしない設定になっているかを確認する - 設定を変えたら、プラグインとCDNのキャッシュを削除してから確認する
プラグインの干渉を切り分ける
ここまでで原因が見つからない場合は、プラグインを止めて確認します。公開中のサイトですべてのプラグインを止めると訪問者にも影響するため、Health Check & Troubleshooting プラグインのトラブルシューティングモードを使うと、自分のログイン中の表示だけでプラグインを止めて確かめられます。
すべてのプラグインを止めて管理バーが表示されたら、1つずつ有効に戻して原因のプラグインを探します。テーマについても、同じモードで標準テーマに切り替えて確認できます。
管理バーを意図的に消したい場合や、権限ごとに出し分けたい場合は、管理バーを権限ごとに表示・非表示にする方法を参考にしてください。
まとめ
- 管理バーは、ログインしていること、プロフィールの「サイトを見るときにツールバーを表示する」、
show_admin_barフィルターの3つで表示が決まる - 管理画面とサイトでドメイン表記が違うと、サイト側でログインしていない扱いになる
grep -rn "show_admin_bar"で、テーマやプラグインが管理バーを消していないかを探す- テーマに
wp_head()、wp_body_open()、wp_footer()があるかを確認する。wp_body_open()とwp_footer()の両方が無いと、管理バーは出力されない - CSSで隠されていないか、ログイン中のユーザーにキャッシュが返されていないかを確認する