WordPressでブログを運営していると、カスタマイズをするのに「funciton.php」を編集する必要があるそうです。私はこれまで「function.php」を編集したことはありませんでした。正確には更新ができなかったんですけど。
一度編集を試みたことがあります。
それは、ブログ記事に挿入している画像を右クリックで保存できないようにするには「function.php」を編集することできるそうなので、やってみようとしましたが諦めました。
理由は、編集しようとしても保存できないというメッセージが出てしまったからです。結局、上記内容につては、別の手段で実現できました。
また、「funciton.php」の編集をミスすると、サイトが真っ白になってしまったり等もなるらしく、できることなら触れたくなかったのでこれまで何もしてきませんでした。
しかし、別件で「function.php」を編集、更新する必要が出てきましたので、なぜ更新ができないのか調べてみました。また、どうすれば編集、更新ができるようになるかを紹介させていただきます。
実際に起きている現象について
WordPressのダッシュボードで、「外観」→「テーマエディター」→「テーマのための関数(function.php)」を選択し、function.phpの編集を行い、「ファイルを更新」をクリックしても以下の文章が表示され、編集、更新ができない状態になっていました。
「致命的なエラーをチェックするためにサイトと通信できないため、PHPの変更は取り消されました。SFTPを使うなど、他の手段でPHPファイルの変更をアップロードする必要があります」
このエラーはWordPress4.9以降に実装された「コードエラーチェック」機能だそうで、『その更新すると壊れる可能性があるから辞めておこう』と事前にストップをかけてくれるものだそうです。
うーん・・・SFTPって何?ネットで色々調べてみましたが、これは私にはできないとお手上げ状態でした。
SFTPではなく、何とかWordPressのダッシュボード上で編集、更新できるようにできないか、ネットで調べながら試してみることにしました。
原因はプラグインだった
ネットで調べたところ、インストールしているプラグインを停止したら更新ができるようになったというものをいくつか見つけましたので試してみました。
とりあえず、インストールしているプラグインを全部停止にしたら、更新ができるようになりました。
しかし、毎回全部のプラグインを停止にするなんて面倒くさいと思い、どのプラグインを停止にすればいいのか一つずつ確認しました。
SiteGuard WP Plugin
「SiteGuard WP Plugin」というプラグインを停止したら更新できるようになりました。
しかし、このプラグインを停止→再度有効とするとWordPressへのログインページURLが変更されてしまいます。そのため、注意が必要です。
「function.php」を編集、更新は頻繁に行うものではありませんが、「SiteGuard WP Plugin」の停止により、ログインページURLが変更されてしまうのは色々やっかいだと思いましたので、さらに「SiteGuard WP Plugin」の各機能の設定でどうなるのか試してみました。
管理ページアクセス制限をOFFで更新できた
「SiteGuard WP Plugin」の「管理ページアクセス制限」をOFFにしたら「function.php」の編集、更新ができるようになりました。
この方法であれば、「SiteGuard WP Plugin」を停止することなく「function.php」の編集、更新を行うことができます。
なお、「SiteGuard WP Plugin」の「管理ページアクセス制限」の機能は、ログインが行われていない接続元IPアドレスに対してや異なるIPアドレスから「wp-admin/~」にアクセスすると「404エラー」画面を返す機能です。
私がWordPressにログインするのは基本的には家のネット環境であり、接続する端末も固定されていますので、この機能は常にONにしています。
「function.php」の編集、更新を行う時だけ、この機能をOFFにし、完了したらこの機能をONに戻すという対応していこうと思います。
まとめ
WordPressのダッシュボードで「function.php」が編集、更新できない原因と対応について紹介させていただきました。
私自身、このような内容は本当に苦手で触らないようにしてきましたが、プラグインの設定を変更するだけで対応できて本当に良かったです。
この記事を最後までお読みいただきありがとうございました。