サーバーのPHP72でWp-Queryのエラー

2018年9月4日にサイト制作しているとWp-Queryでエラーが表示されました。そのサイトはXサーバーでこの時点で最新のPHP72が使用されています。PHP56で数年かけて作ったコードがPHP70でエラー表示された悪夢の再現?

エラーが表示されている雑誌の画像

PHP72のサーバー会社

調べてみるとこの時点でPHP72を使用しているレンタルサーバー会社はXサーバー、バリュードメイン、サクラサーバー等すでに多数ありました。
Xサーバーだけというわけではないようです。
つまりHaradaWebが利用しているコアサーバーもPHP72になっています。

外部参考サイト:FastCGI版PHP 各バージョンのPHP設定法 | 基本的な質問 | よくある質問 | レンタルサーバー CORESERVER(コアサーバー) – 30日間無料お試し

しかし最近の忙しさにかまけてPHP72の存在さえ分かっていませんでしたし、当然バージョンアップもしていません。

問題のWp-Queryのエラー

問題が発生したのはサイトに「関連情報」を設置していた時です。

WordPressのプラグインを利用すればいいのだろうが、関連情報のプラグインはどうにも扱いにくく感じます。
プラグインによっては関連情報のタイトルに「h3」が設定されているし、CSSも色んなところに「!important」が設定されていて、カスタマイズさせない感が強いと感じます。

そんな理由で自家製の関連情報をWp-Queryで作っています。

サイト内リンク:WordPressでプラグインなしの「関連記事」を作る | HaradaWeb(ハラダウェブ)

ここに注意

2018年9月4日まで上記の様に

と記載していました。
しかしこれがサーバーのPHP72でエラー予告表示されます。

エラーの内容は

Warning: Use of undefined constant date – assumed ‘date’ (this will throw an Error in a future version of PHP) in /home/haradaweb/haradaweb.com/public_html/ccwp/wp-haradaweb/themes/wordpress17-child/template-parts/post/content.php on line

Warning: Use of undefined constant DESC – assumed ‘DESC’ (this will throw an Error in a future version of PHP) in /home/haradaweb/haradaweb.com/public_html/ccwp/wp-haradaweb/themes/wordpress17-child/template-parts/post/content.php on line

‘orderby’=>date,’order’=>DESC,」がエラーになります。

必要な部分を翻訳すると

警告:定義されていない定数の使用date – ‘date'(これはPHPの将来のバージョンではエラーを投げます)

警告:定義されていない定数の使用DESC – ‘DESC'(これはPHPの将来のバージョンではエラーを投げます)

となります。

つまり

「今は警告だが、将来はエラーだ」という事です。
何がエラーか推測すると「’orderby’=>date,’order’=>DESC,」は設定しなくてもデフォルトで設定されている内容です。
何も設定しなくても「’orderby’=>date,’order’=>DESC,」となるわけです。
それを設定していると、考え方によっては二重で設定していることになる?
だからエラーなのではないかと推測しています。

まとめ

‘orderby’=>date,’order’=>DESC,」この二つを削除するとエラー警告は消えました。
削除してもデフォルトで設定されているため影響はなく、投稿日の新しい順に表示されます。

「’orderby’=>date,’order’=>DESC,」だけでなく、こういう必要のないパラメータを「念の為」の様に付けているコードが大量にあります。

やはりコードは忠実に描いていかなければ、相手は「念の為」等通用しないコンピーターなのだから。

関連情報

投稿日:2018年8月1日 カテゴリー:WP-Query