WordPress のテーマカスタマイズにおいて、function.php の編集は一般的な作業です。しかし、このファイルを更新した際に「何かうまくいかなかったようです。変更が保存されていないかもしれません。手動で修正し、FTP 経由でファイルをアップロードすることもできます。」というエラーメッセージが表示されることがあります。このメッセージは、問題が生じて変更が保存されていないことを示していて、手動での修正や FTP を通じたアップロードを促しています。
エラーメッセージが表示される原因
WAF(Web Application Firewall)が原因の場合
この問題の一般的な原因の一つは、レンタルサーバーのセキュリティ機能、特に WAF の設定です。WAFは外部からの攻撃を防ぐためのセキュリティ対策であり、不正なアクセスをブロックする役割を果たします。しかし、この機能が有効になっていると、正当な更新作業であってもブロックされることがあります。
対処法としては、お使いのレンタルサーバーのマニュアルを確認しながら、 WAF を一時的に無効にし、編集が終わってから再度有効にし直します。
プラグインの問題の確認
セキュリティプラグインを含む他のプラグインも、functions.php の更新を妨げる原因となることがあります。この場合、プラグインを一つずつ無効にし、問題の原因を特定する必要があります。
記述したコードに問題がある場合
これまで問題なく更新ができていたし、プラグインの追加やテーマの変更も行っていないにもかかわらず、突然のエラーメッセージがでた。そんな時、まず疑うべきはコードの記述ミスですが、実は記述ミスが原因であることは意外と少ないのです。
コピーしたコードであれ、自信を持って書いたコードであれ、「なぜエラーが?」と疑問に思うことでしょう。しかし、コードに間違いがないと確信している場合でも、コードの前後や行間に挿入されている不要な空白(スペース)が原因でエラーが生じることがあります。これらの空白を削除するだけで問題が解決することもあります。
それに、先頭の「 <?php 」より前にコメントを書いてしまうと、このエラーが生じることがあります。
また、他サイトからコードをコピーして使用する際には、「この部分は自身のサイトに合わせて」という注意書きに従って加工が必要なことが多いです。直接サイトの編集画面にコピー&ペーストするとエラーが発生することがあるため、一旦メモ帳や適切なテキストエディタに貼り付けてから、そこで加工を行い、その後に全体を編集画面にコピーするという手順を踏むとエラーを回避できることがあります。
特に、日本語などのマルチバイト文字列を含むメッセージを加工する場合、エラーが発生しやすいです。これは WordPress に限らず、多くのプログラムがマルチバイト文字列の扱いに苦手意識を持っているためです。このような細かな点に注意を払いながら、functions.php の更新作業を行うことが重要です。
まとめ
このようなトラブルシューティングは、WordPressを使用する上で避けては通れない道です。適切なセキュリティ対策と丁寧な更新作業が、サイト運営の安定性を保つ鍵となります。