セキュリティ 2024.06.04 2024.06.06
「Parse error: syntax error, unexpected…」エラーの原因と対処
WordPressのカスタマイズにおいて、ページにアクセスする際に「parse error: syntax error, unexpected…」というエラーメッセージが表示されることがあります。これは、PHPがコードの解析作業(パース)で構文を解釈できなかったために起きるエラーです。
主な原因はコードの記述間違いやPHPのバージョン問題で、正しく対処すれば問題なく解決します。しかしエラー処理に不慣れな方は対応に戸惑ってしまうこともあります。
そこで本記事では、エラー処理の経験が少ない方でもスムーズに対応できるよう、図を交えながらわかりやすく「Parse error: syntax error, unexpected…」エラーの原因と対処法を紹介します。
目次
「parse error: syntax error, unexpected…」が表示される原因
WordPressで「parse error: syntax error, unexpected…」と表示されるエラーは、主にPHPの記述に起因します。PHPがコードに書かれた内容を解釈する際に、本来必要な記号が抜けていたり、逆に不要な文字列が含まれていると解釈できずにエラーが発生します。
例えば、コード内に本来記述すべき「;(セミコロン)」や「{ }(波かっこ)」が抜けていると、「parse error: syntax error, unexpected…」が表示されます。
「parse error: syntax error, unexpected…」というエラーメッセージ内には、2つの情報が含まれています。どちらもPHPが期待したコードではないという点で共通しています。
- syntax error(構文エラー)
- unexpected(予期しないエラー)
コード編集時に文法ミスをした場合に生じるエラーです。PHPのバージョンが古いことが原因で生じるエラーもこのエラーです。
コンパイラが、コード内に予期しない文字列を見つけたときに生じるエラーのこと。
「parse error: syntax error, unexpected…」への対処法
次は実際に、WordPressで「parse error: syntax error, unexpected…」と表示された場合の対処法を紹介します。
まず、エラーメッセージの基本構造は以下のようになっています。
上図の例からは、次の情報が読み取れます。
- 構文エラー、予期しないエラーのいずれかが発生(①)
- 「define」がエラーを引き起こしている(②)
- 「wp-config.php」に問題がある(③)
- ③のファイルで27行目に問題がある(④)
実際には、「wp-config.php」の24行目の最後でセミコロンがなかったのが原因でした。
④で示されるエラーの行番号は、必ずしもエラー原因がある行番号と一致するとは限りません。エラーを修正する際は、エラーメッセージの行番号だけでなく前後の行も確認するとよいでしょう。
エラーを解消するには、以下のステップで対応を行うとスムーズです。
- エラーが発生する原因となる箇所を特定する(上図の③と④から)
- 1で特定した箇所を正しいコードに修正する
文法エラーの場合:原因となる文字列を探して間違いを修正する
「parse error: syntax error, unexpected…」エラーから問題がありそうな箇所を特定したら、修正すべき部分を探します。例えば、以下のようなミスによりエラーが起こります。
-
よくあるSyntax Error(構文エラー)の例
- 行の最後につけるセミコロン(;)漏れ
- 引用符の種類を間違えてしまう
- 閉じかっこを忘れてしまう
-
よくあるUnexpected(予期しないエラー)の例
- 変数を参照する際に「$」を忘れた
- 始まり、または終わりにかっこ「(」「)」を忘れた。
- クオーテーションを忘れた、または前の行の最後のセミコロン「;」を忘れた。
文法エラーは、「PHP Code Checker」などの構文チェックツールを使用すると効率的に見つけられます。またChatGPTなどの生成AIに質問するのもおすすめです。
PHPのバージョン不一致の場合:適宜バージョンアップやプラグイン削除などの対応を行う
文法的には問題がないにも関わらず、「parse error: syntax error, unexpected…」エラーが発生するケースがあります。これは、サーバー側のPHPバージョンとWordPress本体やプラグイン、テーマなどのPHPバージョンが一致しないことが原因です。
-
PHPのバージョン不一致が起こる例①
- 新たに有効化したプラグインで、PHPの新しいバージョンから使用可能になった演算子を使用していた
- サーバー側のPHP(古いバージョン)ではコードを解釈できずにエラーが発生
例えば、PHP8.0xでは今まで使用できたeach() 関数が廃止になりました。そのためPHP 8.0を使用したサーバーでeach() 関数を含むコードを実行するとエラーが発生します。
-
PHPのバージョン不一致が起こる例②
- レンタルサーバーのPHPが自動でバージョンアップして古いバージョンのPHPは使用できなくなった
- WordPress側のPHPのバージョンは古いままだったためエラーが発生
エラーメッセージがプラグイン名やテーマ名を指している場合や、PHPのコードを修正していないのにエラーメッセージが出てしまった場合は、PHPのバージョン不一致を疑ってみてよいでしょう。
その場合は、以下の対応を行います。
- WordPress管理画面で該当するプラグイン、テーマを無効化する
- 古いほうのPHPバージョンを上げる
→問題が解消したら該当プラグイン、テーマは使用せず他のものに変える
→バージョンアップにより他の部分で不具合が生じる可能性があるため慎重に行う
WordPress管理画面にログインできない場合
エラーが表示されてWordPress管理画面にログインできない場合は、直接フォルダを操作してプラグインやテーマを無効化します。
- エラーメッセージからプラグイン名やテーマ名を特定する
- FTPツール等で、WordPress関連ファイルを保存しているディレクトリへ接続する
- 「wp-content/plugins」内から、該当プラグイン名のフォルダを見つけてフォルダ名を一時的に変更する
- WordPress管理画面にログインできるかどうか確認する
エラーが消えない場合:バックアップから元の状態に戻す
どうしても修正できない場合は、バックアップを使用して前の状態に戻す方法があります。
エラーメッセージから問題があるファイル名を特定したら、バックアップから該当ファイルを見つけ、FTPツールでサーバーへファイルをアップロードします。
バックアップについては、以下の記事でも解説しています。
WordPressバックアップ&復元方法をやさしく解説
バックアップがない、復元方法がわからない場合はプロに相談
「parse error: syntax error, unexpected…」というエラーが起きた場合の対処法はそれほど複雑ではありません。しかし、エラー対応に不慣れな方は、想像以上に時間がかかる場合や、うまく対処できない場合があります。さらに何らかの理由でバックアップが取得できていない場合があると、問題解決が長引く可能性もあります。
こうした状況では、迷わずに専門家に相談する方法をおすすめします。エラーの原因などを調べる時間が無駄にならずに済むほか、専門知識や経験を持ったスタッフが対応したほうが迅速に解決できるためです。エラーが出るプラグインを引き続き使用したい場合のアドバイスを求めることもできます。
wp.makeでは、WordPressに関するトラブルを安全・迅速に復旧するサービス「wp.rescue」を提供しています。WordPressに関する専門知識と豊富な対応実績を活かしてスピーディに問題を解決します。
まとめ
WordPressで表示される「parse error: syntax error, unexpected…」というエラーは、主に記述ミスまたはPHPのバージョンが原因で生じます。基本的にはエラーメッセージの内容に基づき適切な対処を行えばよく、落ち着いて行動すれば問題ありません。
もちろん自社で解決できるのが一番ですが、社内に専任の担当者がいない場合などは時間や手間をかけたくないものです。専門家にエラー対応を依頼して効率化するという方法もよいでしょう。
WordPress保守・運用のパートナーなら「wp.support」にお任せ!
WordPressサイトを運用していて、以下のようなお悩みはありませんか?
- 管理画面を使いやすくしたいけれど、カスタマイズする時間や技術がない…
- サイトのUI/UXを改善したいけれど、自社内では難しい…
- WordPressサイトを高速化したいけれど、ノウハウがない…
- セキュリティ対策をしたいけれど、知識のある人材がいない…
- 日々の業務に追われて、バージョンアップなどの保守業務が放置気味…
- ちょっとしたトラブルを気軽に相談できる相手が欲しい…
「wp.support」は、WordPressのプロフェッショナル集団によるWordPress保守サービスです。
「セキュリティ対策」「バージョンアップ対応」「定期バックアップ」はもちろん、「電話サポートが無制限」なのでカスタマイズの方法やトラブル発生時にも気軽にプロに相談できます。
既に導入済みのお客様からも、
「些細なことでも気軽に相談できるパートナー的な存在」
「困ったら相談していいんだ、と気持ちが楽になった」
と大変ご好評をいただいています。
WordPress保守・運用のパートナーをお探しなら、ぜひお気軽にお問合せください。
バージョンアップが面倒だと思ったら WordPress保守・セキュリティ対策は『wp.support』にお任せ!
WordPressのバージョンアップやセキュリティ対策にお悩みではないですか?
面倒な保守・運用作業は全て任せて、コア事業に集中してください。
大手・上場企業100社以上のWebサイトの安全を守る、WordPressのプロフェッショナル集団が、あなたのWordPressサイトを守ります!
【対応範囲】
・WordPress、プラグインのバージョンアップ ・セキュリティ対策 ・継続的なバックアップ ・緊急時の復旧対応 ・技術サポート・電話/メールサポート無制限 etc...
WordPressに関することなら何でもご相談ください!