【WordPress】サイト情報を取得するbloginfo()の非推奨と廃止について

 2019年6月13日
WordPress
この記事のURLとタイトルをコピーする
先日、WordPressサイトが表示されない現象が起きました。
サイトを開いてみると、上の状態から表示が変わらない状態。
ローディングが止まらず無限ループしていたのです。

今回は、その時の備忘録です。

bloginfo()ってなに?

WordPressのサイト情報を表示させるための関数です。

WordPressはたくさんのPHP関数が定義されています。
パラメータによりサイト名や出力ファイルまでのパスなど、いろんなサイト情報をブラウザで表示させることができます。

例えば、サイト名を取得するには サイトのキャッチフレーズを取得するには など、上記の記述でサイト情報を取得することができます。

直接テーマファイルに触れる方は、必ずと言っていいほど使用していたのではないでしょうか?

原因:bloginfo()が文字化け

結論からお伝えすると、jsファイルの読み込みで使用されていたbloginfo()が文字化けをしていました。

実際の記述は、以下です。 scriptタグ内で、jsファイルまでのパスをbloginfo()で取得しています。

元々PHP5に合わせて作成されたテーマですが、PHP7にバージョンを上げたことにより、bloginfo()が適応されなかったための現象。
ローディングを停止させる命令がjsファイル内に書かれていましたが、文字化けによりファイルを読み込むことができず、無限ループが続いているようでした。

対応法:echoへ記述を変更

bloginfo()をechoの記述に変更します。

まとめ

今回、気を付けるべきだった点はふたつ。

ひとつめは、バージョンアップについて。
PHPに関わらずバージョンを上げる行為は、サイト表示にエラーが発生するリスクが伴います。必ずデモ環境などでテストしてから、本番に反映させるのがベストです。

ふたつめは、bloginfo()の記述について。
このテーマが作成されたのは2~3年前ですが、その時点でbloginfo()は既に非推奨でした。
PHP5で非推奨となり辛うじて使えていたけど、PHP7で完全廃止になってしまった。 恐らく、当時の制作者はこのことを認識していなかったのでしょう…。

制作時点で不具合が回避できるなら、それにこしたことはないですね。
(実際は難しいことが多いですが。)

無事に解決できたので、よしとしましょう。
この記事のURLとタイトルをコピーする