
WordPressでウェブサイトを運用していると、予期しないエラーメッセージに遭遇することがあります。有名なエラー(例えば、白い画面だけが表示される「真っ白画面」など)については多くの情報がありますが、特定の状況や設定ミスで発生しやすく、いざ遭遇すると原因が掴みにくく対処に困るエラーも存在します。
この記事では、WordPressで比較的よく遭遇するものの、原因や解決策が分かりにくいことがある代表的なエラーをいくつか取り上げ、それぞれの原因と初心者の方にも分かりやすい対処法を解説します。いざという時に落ち着いて対応し、あなたのWordPressサイトを安定して運用するためにお役立てください。
1. 「Cannot modify header information – headers already sent」エラー
概要:
ウェブサイトを閲覧しているときや、管理画面で何らかの操作を行った際に、ページの先頭や画面のどこかに「Warning: Cannot modify header information – headers already sent by…」といった警告メッセージが表示されるエラーです。特に、ログイン後のリダイレクトやクッキーの設定、ファイルのダウンロードなどを伴う操作時に発生しやすい傾向があります。
原因
- PHPファイルの先頭にある
<?php
タグの前に、余計な空白(半角スペース、タブ、改行など)がある。 - PHPファイルの末尾にある
?>
タグの後に、余計な空白や改行がある。 - PHPコードの中で、ヘッダー情報(HTTPヘッダー)が送信されるべきタイミングより前に、意図しない文字(
echo
やprint
などによる出力、HTMLタグなど)が出力されてしまっている。 - PHPファイルが「バイトオーダーマーク (BOM)」付きのUTF-8で保存されている(特に古めの環境)。
このエラーは、「HTTPヘッダー(ページのcharset、クッキー、リダイレクト先などの情報)は、ページ内容(HTMLやその他の出力)より前に送信されなければならない」というウェブの基本的なルールが破られた場合に発生します。
対処法
- エラーメッセージに表示されている「…by /path/to/your/file.php on line ○」という箇所を確認し、原因となっている可能性のあるファイルと行番号を特定します。多くの場合、
functions.php
やテーマ、プラグインのPHPファイルです。 - 特定したファイル(特に `functions.php`)をFTPソフトやファイルマネージャーで開き、テキストエディタで編集します。
- ファイルの先頭にある
<?php
タグの前に、改行や空白が一切ないことを確認し、あれば全て削除します。 - ファイルの末尾にある
?>
タグの後に、改行や空白が一切ないことを確認し、あれば全て削除します。最も安全なのは、ファイルの末尾がPHPコードで終わる場合に?>
終了タグ自体を削除してしまうことです。これにより、タグ後の意図しない出力は物理的に発生しなくなります。 - 使用しているテキストエディタで、ファイルのエンコーディング設定を確認し、「BOMなしUTF-8」で保存されていることを確認します。
- もしコードの中にデバッグ目的などで
echo
やprint_r
といった出力関数が残っている場合は、それらを削除するか、出力バッファリング(ob_start()
とob_end_flush()
など)を利用して出力を制御することを検討します(これは少し専門的な対処になります)。
頻度: テーマやプラグインのコードを編集したり、新しいコードを追加したりした直後によく発生します。特にPHPの終了タグの後の空白は初心者が見落としやすく、頻繁に遭遇するエラーの一つです。
2. 「Briefly unavailable for scheduled maintenance」エラーが解除されない
概要:
WordPressのプラグイン、テーマ、または本体の更新中に、サイトに「Briefly unavailable for scheduled maintenance. Check back in a few minutes.」(日本語では「現在メンテナンス中のため、しばらくの間ご利用いただけません。」など)と表示されたままになり、サイトにアクセスできなくなるエラーです。
原因
- WordPressは更新処理を開始する際に、サイトのルートディレクトリに
.maintenance
という一時的なファイルを生成し、サイトをメンテナンスモードにします。 - 更新処理が完了すると、この
.maintenance
ファイルは自動的に削除され、メンテナンスモードが解除されます。 - しかし、更新中にサーバーの接続が中断されたり、ブラウザを閉じてしまったり、PHPのタイムアウトが発生したりすると、この
.maintenance
ファイルが削除されずに残り、サイトがメンテナンスモードのまま固定されてしまいます。
対処法
- FTPクライアントソフトやレンタルサーバーのファイルマネージャーを使って、WordPressがインストールされている**ルートディレクトリ**にアクセスします。これは通常、
wp-config.php
やwp-load.php
といったファイルがある場所です。 - そのディレクトリ内に
.maintenance
という名前のファイルがあるか確認します。このファイルは隠しファイルになっている場合があるので、FTPソフトの設定で隠しファイルを表示するように変更が必要かもしれません。 .maintenance
ファイルを見つけたら、それを**削除**します。- 削除後、サイトに再度アクセスしてみてください。通常はこの操作でメンテナンスモードが解除され、サイトが表示されるようになります。
- 管理画面に入れるようになったら、中断された更新を再度実行して完了させてください。
頻度: 更新中に何らかの中断が発生した場合に起こります。マイナーなエラーですが、サイトが見られなくなるため非常に焦りやすいエラーです。対処法は非常にシンプルなので、覚えておくと役立ちます。
3. 「Missing a temporary folder」エラー
概要:
WordPressの管理画面からメディアファイル(画像など)をアップロードしようとしたり、プラグインやテーマをZIPファイルでアップロードしてインストールしようとしたりした際に、「”ファイル名” のアップロードに失敗しました。Missing a temporary folder.」のようなエラーが表示されるエラーです。
原因
- PHPがファイルアップロード時に一時的にファイルを保存するためのテンポラリフォルダが、サーバー上で適切に設定されていない、またはWordPressやPHPからアクセスする権限がない。
- サーバー全体のディスク容量が不足している場合も、一時ファイルの作成に失敗してこのエラーが発生することがあります。
これはWordPress側の問題というよりは、サーバーのPHP設定や環境の問題であることが多いです。
対処法
- まず、レンタルサーバーの管理画面などでサーバーのディスク容量を確認し、空き容量が十分にあるかチェックします。容量が不足している場合は、不要なファイルを削除するなどして空き容量を確保してください。
- ディスク容量に問題がない場合、PHPのテンポラリフォルダの設定に問題がある可能性が高いです。
- **サーバーのPHP設定を変更できる場合:**
php.ini
ファイルのupload_tmp_dir
ディレクティブがコメントアウトされていないか、または有効なディレクトリパスが指定されているかを確認します。必要に応じて、テンポラリフォルダのパスを修正し、そのフォルダにPHPから書き込み権限があるか確認します(通常はWebサーバーを実行しているユーザーに書き込み権限が必要です)。 - **
wp-config.php
で設定を試みる場合:** サーバーのPHP設定を変更できない場合や、一時的な対処として、WordPressのwp-config.php
ファイルに以下のコードを追加して、WordPressが使用するテンポラリフォルダを明示的に指定することを試すことができます。<?php // ... wp-config.php の他の設定 ... // PHPの一時フォルダを指定 if(!defined('WP_TEMP_DIR')) { define('WP_TEMP_DIR', ABSPATH . 'wp-content/temp/'); } // ... wp-config.php の他の設定 ... /* 編集が必要なのはここまでです ! WordPress でどうぞ。 */
`wp-config.php` ファイルの、
/* 編集が必要なのはここまでです!WordPress でどうぞ。 */
の直前あたりに追加するのが良いでしょう。
- **サーバーのPHP設定を変更できる場合:**
- 上記で
WP_TEMP_DIR
を定義した場合、WordPressのインストールディレクトリ内のwp-content
フォルダの中に、新しくtemp
という名前のフォルダを作成してください。そして、そのtemp
フォルダにWordPress(Webサーバー)から書き込みができるように、適切なパーミッション(権限設定)を設定します。通常は755
で問題ないことが多いですが、サーバー環境によっては777
などが必要な場合もあります(セキュリティ的には777
は非推奨)。
頻度: 低コストの共有レンタルサーバーや、PHPの設定を自分でカスタマイズしたサーバー環境で発生しやすいエラーです。一般的なテーマやプラグインの利用ではあまり遭遇しないため、マイナーな部類に入ります。
4. 「Are you sure you want to do this?」エラー
概要:
WordPress管理画面で、プラグインの有効化/停止、テーマの切り替え、投稿や固定ページの保存/更新、ユーザー情報の更新など、何らかの重要な操作を行った際に、「本当に実行しますか?」または「Are you sure you want to do this?」というメッセージが表示され、操作が完了しないエラーです。詳細なエラーメッセージが表示されないため、原因が分かりにくいのが特徴です。
原因
- このエラーは、WordPressのセキュリティ機能である「ノンス(Nonce)」認証に失敗した場合によく発生します。ノンスは、フォーム送信などの操作が正規のものであることを確認するための使い捨てのセキュリティトークンです。
- ノンスが欠落している、有効期限が切れている、または不正なものであると判断された場合に、このエラーが表示されます。
- 原因としては、ブラウザのキャッシュ、セッションの問題、古いプラグインやテーマが生成する不正なフォーム、サーバーのキャッシュ、セキュリティプラグンの干渉などが考えられます。
対処法
- まず、ブラウザのキャッシュとCookieを全てクリアします。その後、再度WordPress管理画面にログインし直し、問題の操作を再試行してください。ブラウザのキャッシュが原因であることが多いです。
- 別のブラウザや、スマートフォンのシークレットモードなどで管理画面にアクセスし、同じ操作を試してみてください。特定のブラウザの問題かどうかの切り分けになります。
- 最近インストールまたは更新したプラグインがある場合は、それを一時的に無効化してエラーが解消されるか確認します。特にセキュリティ関連のプラグインや、管理画面に影響を与えるプラグインが原因となることがあります。
- 現在利用しているテーマを、WordPressに標準搭載されているテーマ(例: Twenty Twenty-Fourなど)に一時的に切り替えて、エラーが解消されるか確認します。特定のテーマのコードが原因となっている可能性も考えられます。
- W3 Total CacheやWP Super Cacheといったキャッシュ系プラグインを利用している場合は、キャッシュをクリアするか、一時的に無効化して試してみてください。サーバー側のキャッシュサービスを利用している場合は、サーバー会社に問い合わせが必要になることもあります。
頻度: 古いプラグインやテーマを使用しているサイト、またはサーバーキャッシュの設定が複雑な環境で散発的に発生することがあります。詳細なエラーが出ないため、原因特定に試行錯誤が必要な厄介なエラーです。
5. 「403 Forbidden」または「404 Not Found」エラー(特定ページのみ)
概要:
サイト全体は表示されるのに、特定のページ(例: 特定の投稿、特定の固定ページ、特定のカテゴリ一覧、管理画面の一部のページなど)だけが「403 Forbidden」(アクセス拒否)や「404 Not Found」(ページが見つかりません)となるエラーです。
原因
- WordPressのパーマリンク設定や、
.htaccess
ファイルの設定が破損している、または正しくない。 - セキュリティプラグイン(Wordfence, iThemes Securityなど)が、特定のページやアクセスパターンを不正と判断し、アクセスをブロックしている。
- レンタルサーバー側のセキュリティ機能(mod_security や WAF – Webアプリケーションファイアウォールなど)が、特定のリクエストやURLを誤ってブロックしている。
- ファイルやフォルダのパーミッション(権限設定)が間違っている(ただし、特定のページのみの場合、全体的なパーミッションの問題であることは少ない)。
対処法
- まず、WordPress管理画面の「設定」→「パーマリンク」を開き、**何も変更せずに**「変更を保存」ボタンをクリックします。この操作を行うことで、WordPressが
.htaccess
ファイルを自動的に再生成し、パーマリンクに関する問題が解消されることがあります。 - パーマリンクの再保存で改善しない場合、
.htaccess
ファイル自体に問題がある可能性が高いです。FTPソフトやファイルマネージャーを使って、WordPressのルートディレクトリにある.htaccess
ファイルをダウンロードしてバックアップを取ります。その後、ファイルの内容をWordPressのデフォルトの状態に戻すか、ファイル自体を一度削除してみてください(パーマリンク設定画面で再保存すると自動生成されます)。デフォルトの.htaccess
の内容は以下のようになります。# BEGIN WordPress
RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress上記以外の記述(プラグインや手動で追加したセキュリティルールなど)がある場合は、それが原因の可能性があります。
- セキュリティ関連のプラグイン(WordfenceやiThemes Securityなど)を一時的に無効化して、エラーが解消されるか確認します。
- レンタルサーバーの管理画面に、WAFの設定やログを確認できる機能があるか探します。もし利用している場合は、特定のURLや操作がブロックされていないか確認し、必要であれば設定を除外するかサーバー会社に問い合わせてください。
頻度: セキュリティプラグインを導入・設定したり、パーマリンク設定を変更したり、手動で .htaccess
を編集したりした後に発生しやすいエラーです。特定のページだけという点が原因特定を少し難しくしますが、`.htaccess` やセキュリティ設定が主要な原因であることが多いです。
6. 「Database connection error」または「Error establishing a database connection」
概要:
サイト全体に「データベース接続エラー」または「Error establishing a database connection」と表示され、サイトが全く表示されなくなる、WordPressで最も致命的なエラーの一つです。管理画面にもログインできなくなります。
原因
- WordPressがデータベースに接続するために必要な情報(データベース名、ユーザー名、パスワード、データベースホスト名)が間違っている。
- データベースサーバー自体がダウンしている、過負荷になっている、または接続制限がかかっている。
- データベースのテーブルが破損している。
- サーバーのディスク容量が完全に不足し、データベースが正常に動作できない状態になっている。
対処法
- 最も多い原因はデータベース接続情報の誤りです。FTPソフトやファイルマネージャーを使って、WordPressのルートディレクトリにある
wp-config.php
ファイルをダウンロードして開きます。以下の4つの項目に記述されている情報が正しいか、慎重に確認・修正します。これらの情報は、レンタルサーバーの契約情報や管理画面(データベース設定画面など)で確認できます。
- `wp-config.php` の情報が正しいにも関わらずエラーが続く場合、データベースサーバー自体に問題がある可能性があります。利用しているレンタルサーバーの公式サイトのお知らせを確認したり、サーバー会社のサポートに問い合わせて、データベースサーバーが正常に稼働しているか確認してもらいます。
- データベースのテーブルが破損している可能性もあります。phpMyAdminなどのデータベース管理ツールにアクセスできる場合は、データベースを選択し、全てのテーブルに対して「修復」(Repair Table)を実行してみてください。
- サーバーのディスク容量が完全に枯渇している場合もこのエラーが発生します。レンタルサーバーの管理画面でディスク使用量を確認し、もし限界に近い場合は、不要なファイルを削除して空き容量を確保してください。
頻度: 主にWordPressの引っ越し(サーバー移転)や、レンタルサーバー側でのメンテナンス・障害、wp-config.php を手動で編集した際に発生しやすいエラーです。発生するとサイト全体が見られなくなるため、マイナーながらも最も緊急性の高いエラーと言えます。
まとめ
WordPressで遭遇するエラーの中には、原因が分かりにくく対処に困るものがいくつか存在します。この記事でご紹介したエラーは、特定のコード記述ミス、ファイルの破損、サーバー設定、セキュリティ機能の干渉などが原因で発生することが多いです。
これらのエラーに遭遇した場合、まずはエラーメッセージ(表示されていれば)や状況をよく確認し、今回解説した各エラーの原因や対処法を参考にしてみてください。特に、PHPファイルの空白・改行、.maintenance
ファイル、wp-config.php
の設定、プラグインの一時停止などが、多くの問題を解決する鍵となります。
WordPressのカスタマイズや運用を進める上でエラーは避けられないこともありますが、原因と対処法を知っておくことで、冷静に対応し、サイトを安定して稼働させることができます。