ワードプレスは、PHPという言語で作成されているシステムです。PHPには、言語のバージョンがあり、こちらも日々更新されており、サーバー側の設定で更新を適応できるレンタルサーバーがほとんどです。
PHPはバージョンによって、高速化とともに、言語の仕様が変わっている部分があり、ごく稀にプラグインやテーマに古いPHPでしか動かないコードがある場合、サイトに不具合を起こすことがございます。
こちらの修正をワードプレスドクターで行いました事例をご紹介します。
PH7へのバージョン変更に伴う プラグインExec-PHPの不具合
Exec-PHP は、PHPのプログラムコードを、直接書き込んでサイト上で実行できるプラグインですが、長らく更新が止まっており、PHPバージョン7以上で使用すると サイト全体が何も表示されない500(真っ白になる)エラーを引き起こします。
Parse error: syntax error, unexpected ‘new’ (T_NEW) in plugins/exec-php/exec-php.php on line
のようなエラーを出力する場合もございます。
PHP7上でも動作させるようにするには、このプラグインのプログラムに含まれる
& new という 処理を全体的に new だけに書き換えて動作検証の上プラグインにコードを置き換えていく作業が必要となります。& new という表記・処理はPHP7では使用できなくなっており、PHP7以上でエラーを引き起こし強制停止します。
ワードプレスドクターでは、様々なバージョンのPHPの仮想環境を保持しており、その仮想環境上にて、安全にプラグインの不具合を修正の上PHP7に適合させて御社サイトの本番環境に適応の上、エラーの解消を行いますことが可能です。
テーマオプションが表示されない、レイアウトが崩れる、情報の更新ができない等の不具合
PHPのバージョンを変更した後、サイトのテーマオプション関連の不具合により、サイトの設定等の調節ができなくなることもございます。
この場合サイトの表示は問題ないという事も多いです。
症状 ・テーマオプションの一部ページが表示されない ・テーマオプションの一部が欠落 ・テーマオプションのボタンが効かなくなり、情報が更新されない ・テーマオプションのレイアウトが崩れて、入力ができなくなったり操作できなくなったりする
この不具合は、PHPのバージョン変更に加え、ワードプレス5.2以上に更新したときに複合的な理由で発生することもあります。
一番多い原因がワードプレス5.2以降で、ワードプレス内部に搭載されているJQUERYというJAVASCRIPTのプログラムの更新された事により、テーマオプション画面でこのJQUERYを更新時や表示等に使用している場合の不具合の発生です。
複雑なバックグラウンド更新や、タブ・モーダル等の仕組みをテーマオプション画面で利用しているテーマで発生します。
解決方法としましては、ワードプレスを別のテスト用環境にうつして、背後で起こっているエラーをブラウザーに搭載している、開発ツールで調査修正したり、JQUERYのバージョンを変えてみたり、テーマの古いPHPコードのエラーを検出し直接修正するなどの方法がとられます。
WordPress のPHPのバージョンアップに伴うテーマオプションやプラグインの不具合の調査・修正のご依頼はWPドクターまでお気軽にお送りください