HAGANEYA(@imech_jp)です。
WordPress プラグインのアップデートが溜まっていたので、まとめて更新したところ、構文エラー(syntax error)が発生。WordPressダッシュボードおよび、ブログが開けなくなってしまいました。
先日、ブログを訪問していただいた方にはご迷惑をおかけしてしまいました。大変申し訳ありません。
とりあえず『FFFTP』で該当ファイルを "フォルダごと" 削除しておこう
今回のケースに限らず、syntax error が発生した際にまずすべきことは「FTPクライアント(『FFFTP』など)を使って、該当ファイルを直接削除する」ということです。この場合だと、plugins ディレクトリ内の newpost-catch フォルダになります。
普段なら WordPress ダッシュボードからプラグインのインストールや削除が可能ですが、構文エラーが発生するとブラウザ経由でのアクセスが出来なくなってしまいます。こういったトラブルが起こった時は、FTPクライアントから直接入るしか方法がありません。
プラグインの格納フォルダを削除せずに直接原因を調べることも可能ですが、せっかく訪問してくださった方々がブログを閲覧出来なくなってしまいますので、応急処置としてフォルダを削除しておくのが無難です。
Newpost Catch のアップデートでエラーが発生する理由
今回発生した構文エラーの内容は、以下となります。
1 |
Parse error: syntax error, unexpected T_FUNCTION in /xxx/wp-content/plugins/newpost-catch/newpost-catch.php on line 17 |
syntax error が発生した場合、"○○.php" 辺りにヒントが記載されていることが多いです。今回の場合は newpost-catch.php の部分ですね。
ちなみに『Newpost Catch』とは「サムネイル画像付きの "最近の投稿" を表示」するプラグインです。
さて、ここからが本題。
なぜ、Newpost Catch をアップデートした際にエラーが発生したのでしょうか?
結論から申しますと「PHPのバージョンが古いから」です。もっと具体的に言うと「PHP5.2以下のバージョンを使用している Newpost Catch ユーザー」全員がエラー発生します。
つまり、対処法は「PHPのバージョンを5.3以上に上げる」だけです。あなたが契約しているレンタルサーバーの管理画面(コントロールパネル)から PHPのバージョンを変更できますので確認してみてください。
参考リンク
トピック: 開発者からのお知らせ - Newpost Catch Community(beta)
ちなみに、私が契約している『さくらインターネット』の場合は、サーバコントロールパネル内の左サイドバーから [PHPのバージョン選択] ページを開き、[新しいバージョン] のプルダウンメニューから PHP5.3 ~ 5.6 のいずれかを選んで [変更] ボタンをクリックすればOKです。特にこだわりが無ければ、最新バージョンを選択しておきましょう。
[現在のバージョン] が PHP5.3 ~ 5.6 になっていれば設定完了。ブログとWordPressダッシュボードにアクセスできるようになっているはずですので試してみてください。
最後に
PHPのバージョンアップによって、今まで普通に使えていた WordPressプラグインやウェブサービスが突然エラーを吐くことがあります。
とりわけ、私のように "一度もPHPのバージョンを上げたことが無い" ユーザーほど、不具合に遭遇する可能性は上がるはずです。実際 Newpost Catch の他にも、構文エラーで一時的に使用できなくなってしまったツールがあります(別の記事にて書く予定です)。
[PHPのバージョン選択] ページにも記載されていますが「上級者向けです」「理解できない場合は利用をご遠慮ください」という脅し文句が気になって、バージョンアップを躊躇していた方は多いと思います。ですが、WordPressでブログを運営してる以上、PHPと向き合うことからは避けられないでしょう。
構文エラーを恐れず、積極的にWordPressをいじっていき「エラーが発生した都度、自己解決していく」という姿勢が大事なのかもしれません。
最新情報をお届けします