2026年6月27日
2026年6月27日
WordPressでウィジェットが突然消えたときの原因と復元手順
WordPressのウィジェットが突然表示されなくなったとき、多くの場合ウィジェットそのものは削除されておらず、「どのエリアに置くか」の割り当てが外れたか、テーマ側がそのエリアを表示していないだけです。この記事では、消えたウィジェットがどこに残っているかの探し方と、テーマの変更・プラグイン・キャッシュ・PHPエラーなど、原因の多い順の確認方法と戻し方を説明します。作業の前に、データベースを含むバックアップを取っておいてください。
まず「どこで消えたか」を確認する
最初に、次の2点を確認すると、原因の候補が半分ほどに絞れます。
- 管理画面の「外観 > ウィジェット」には残っているか
- 消えたのはサイトの表示だけか、管理画面の設定ごと消えたか
管理画面には残っているのに表示されないなら、テーマ側の表示条件、キャッシュ、CSS、PHPエラーが疑われます。管理画面からも消えているなら、ウィジェットエリアの割り当てが外れた、ウィジェットを提供していたプラグインが止まった、といった原因が中心になります。
また、「外観」メニューに「ウィジェット」の項目そのものが無い場合は、ブロックテーマを使っている状態です。これは後述の原因2で説明します。
原因1:テーマの変更や更新でエリアの割り当てが外れた
もっとも多いのがこのケースです。ウィジェットは、テーマが登録した「ウィジェットエリア」(サイドバーやフッターなど)のIDに結び付けて保存されています。テーマを切り替えたり、テーマの更新でエリアのIDが変わったりすると、結び付け先が見つからなくなったウィジェットは、「使用停止中のウィジェット」という保管場所に移されます。
確認と戻し方は次のとおりです。
- 「外観 > ウィジェット」を開き、画面の下の方にある「使用停止中のウィジェット」の欄を開く
- 消えたウィジェットがあれば、表示したいエリアに移動する(ブロック形式のウィジェット画面では、ブロックのツールバーから移動先のエリアを選べます)
- 「更新」を押して保存し、サイトで表示を確認する
テーマを元に戻すと、以前の配置が戻ることもあります。WordPressはテーマを切り替えるときに、それまでの配置をテーマごとの設定として保存しているためです。ただし、その後に配置を変えていると思いどおりに戻らない場合があるので、戻す前にバックアップを取ってください。
テーマの更新をきっかけに消えた場合は、更新内容(変更履歴)に、ウィジェットエリアの追加や名前の変更が書かれていないか確認します。親テーマを直接カスタマイズしていて、更新で上書きされたことが原因なら、今後は子テーマにカスタマイズを移すと同じことが起きにくくなります。
原因2:ブロックテーマに切り替えた
Twenty Twenty-Two 以降の標準テーマなど、サイトエディターを使う「ブロックテーマ」では、ウィジェットの仕組みが使われません。サイドバーやフッターは、「外観 > エディター」でテンプレートやテンプレートパーツを編集して作ります。そのため、従来のテーマからブロックテーマに切り替えると、ウィジェットは表示されず、「外観」メニューから「ウィジェット」も消えます。
この場合、以前のウィジェットの中身はデータベースに残っていますが、自動ではブロックテーマのテンプレートに移りません。対処は次のどちらかです。
- 元の従来型テーマ(クラシックテーマ)に戻す
- ブロックテーマのテンプレートパーツに、同じ内容をブロックで作り直す
作り直すときは、従来テーマに一時的に戻して内容を控えておくか、ステージング環境で両方を見比べながら進めると、移し忘れを防げます。
原因3:テンプレートがエリアを表示していない
管理画面にはウィジェットが残っているのに、特定のページだけで表示されない場合は、そのページのテンプレートがサイドバーを表示していない可能性があります。よくあるのは次のようなパターンです。
- 固定ページの編集画面で、サイドバーの無い「1カラム」や「全幅」のテンプレートが選ばれている
- テーマのカスタマイザーに「サイドバーを表示しない」などのレイアウト設定があり、投稿や固定ページで無効になっている
- 子テーマのテンプレートで、
dynamic_sidebar()を呼び出す部分を消してしまった
自分でテンプレートを書いている場合は、表示部分が次のようになっているか確認します。エリアのID(例では sidebar-1)は、テーマの register_sidebar() で登録しているものと一致している必要があります。
<?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?>
<aside class="widget-area">
<?php dynamic_sidebar( 'sidebar-1' ); ?>
</aside>
<?php endif; ?>
原因4:プラグインの停止や競合
ウィジェットを提供しているプラグイン(SNSの埋め込み、人気記事の一覧など)を停止・削除すると、そのウィジェットは表示されなくなります。プラグインを有効に戻すと、設定ごと戻ることが多いです。プラグインの自動更新や、サーバーの移行のあとに消えた場合は、目的のプラグインが有効になっているかをまず確認します。
ほかに、ウィジェットごとに表示する条件を設定できるプラグインを使っている場合は、条件(ログイン中のみ、特定のカテゴリーのみ、など)によって非表示になっていないかも確認します。
原因が分からない場合は、ステージング環境か、アクセスの少ない時間帯に、プラグインを1つずつ停止して表示が戻るかを確かめる方法で切り分けます。
原因5:キャッシュやCSSで見えていない
ウィジェットを直したのに表示が変わらない場合は、キャッシュの可能性があります。キャッシュ系プラグイン、サーバー会社のキャッシュ機能、CDNの順にキャッシュを削除し、ブラウザのシークレットウィンドウで確認します。
画面では見えないのに、ブラウザの開発者ツールでHTMLを見るとウィジェットの要素が存在する場合は、CSSで隠れています。スマートフォンでだけ消える場合は、テーマの「スマホではサイドバーを表示しない」といった設定や、追加CSSの display: none を確認します。
原因6:ウィジェット内のPHPエラーで出力が止まった
サイドバーの途中から下がすべて消えている場合や、フッターごと表示されない場合は、ウィジェットの処理中にPHPのエラーが起き、そこで出力が止まっている可能性があります。wp-config.php で WP_DEBUG と WP_DEBUG_LOG を有効にし(WP_DEBUG_DISPLAY は false)、該当ページを開いたあと、wp-content/debug.log に記録されたエラーのファイルパスを確認します。パスに含まれるプラグインやテーマのフォルダー名が、原因の候補です。調査が終わったら設定を元に戻します。
WP-CLIでウィジェットの状態を確認する
サーバーでWP-CLIが使える場合は、データベースに残っているウィジェットの状態を直接確認できます。
# 登録されているウィジェットエリアの一覧
wp sidebar list
# エリアごとのウィジェット(使用停止中は wp_inactive_widgets)
wp widget list sidebar-1
wp widget list wp_inactive_widgets
# 使用停止中のウィジェットをエリアに戻す(IDは一覧の表示で確認)
wp widget move block-3 --sidebar-id=sidebar-1
wp widget list wp_inactive_widgets にウィジェットが並んでいれば、原因1のように割り当てが外れただけで、中身は残っていると判断できます。エリアのIDはテーマによって異なるので、wp sidebar list の結果で確かめてから指定してください。
ブロックウィジェットとクラシックウィジェット
WordPress 5.8以降、ウィジェットの画面はブロックエディター形式になりました。以前のウィジェットは「レガシーウィジェット」として、ブロック形式の画面でも編集できます。ブロック形式の画面に慣れず、配置が分からなくなった場合は、Classic Widgets プラグインを使うと、従来の形式の画面に戻せます。このプラグインは公式のプラグインディレクトリで配布されています(2026年10月現在)。画面の形式を切り替えても、保存されている配置は消えません。
まとめ
- ウィジェットが消えても、多くは「使用停止中のウィジェット」に残っているので、まずそこを確認する
- テーマの変更・更新でエリアのIDが変わると、割り当てが外れる。テーマを戻すと配置が戻ることもある
- ブロックテーマではウィジェットは使われず、テンプレートパーツで作り直す必要がある
- 管理画面に残っているのに見えない場合は、テンプレートの設定、プラグイン、キャッシュ、CSS、PHPエラーの順に確認する
- WP-CLIの
wp widget listで、データベース上の状態を直接確かめられる