WordPressで以下のようなエラーがでました。
Warning: Use of undefined constant content_archive – assumed ‘content_archive’ (this will throw an Error in a future version of PHP) in /home/xxx/xxx.jp/public_html/wp-content/themes/xxx/archive.php on line 15
治すまでの道のりを書き残したいと思います。
コードを確認する
Use of undefined constant content_archive – assumed ‘content_archive’…archive.php on line 15
と書かれている箇所のコードを確認します。
archive.php の 15行目には以下の文がありました。
get_template_part(content_archive, get_post_format());
content_archive が定義されていない疑惑を持たれています。
content_archive.phpが必要らしい。確かに作ってなかった。
適当に作成し、テーマに追加した。
content_archive.phpてサンプルコード
<a href=”<?php echo get_permalink(); ?>”>
<?php the_time(‘Y/m/d’); ?><?php the_title(); ?>
</a>
追加して再表示してもエラーは消えず。
PHPのバージョンを確認する
Error in a future version of PHP と書かれているのでPHPのバージョンをPHP 7.4.25からPHP7.2.34へ変更してみました。
変わらない。
もっと大幅にPHP5.6.40に変更。
エラーが解決。
バージョンの違いによってエラーが出ていることがわかった。
バージョンを下げるのも1つの手ですが、ここは最新バージョンにしたい。
再びコードを確認する
ネットサーフィンをしているとphpのバージョンによってはシングルクォーテーションで囲う的なことを書いているサイトがあったものの関連性はないとスルーをするも他に何も情報が得られず、今となってはもう戻れないそのサイトの記憶を元に以下にコードを書き換えてみた。
get_template_part(‘content_archive’, get_post_format());
content_archiveをシングルクォーテーションで囲っただけです。
エラー解消されました。
バージョンが上がるとシングルクォーテーションが必要な箇所が出てくるんですかね。
とりあえず治ってよかった。