WordPressを使用しているサーバーのPHPのバージョンをUPすると
カスタムフィールド用にheader.phpで指定しているPHPのエラーが出力されました。
Warning: Use of undefined constant article_css - assumed 'article_css' (this will throw an Error in a future version of PHP) in /home/●●●/ドメイン名/public_html/wp-content/themes/twentyseventeen-child02/header.php on line 33
PHP7.2以降でクオートされてない文字列が非推奨となったため、バージョンアップのタイミングで警告が表示されたようです。
でも、そのまま放置しておくと、8.0以降からは動かなくなるので対応が必要ですね!
原因は未定義の定数?
エラーメッセージの内容としては、
「Use of undefined constant article_css」→『article_css』という未定義の定数が使われています」
「in /●●/header.php on line 33」→「header.php 33行目の記述です」
といった感じで、そのまま翻訳すると以下のように親切に警告してくれています。
警告:未定義の定数article_cssの使用-想定される「article_css」(これにより、PHPの将来のバージョンでエラーがスローされます
header.phpに指定していた内容は以下の通り・・定数?なんて指定していませんが・・
<?php if (is_single()) { $article_css = get_post_meta($post->ID,article_css,true); if($article_css) { echo <<<EOS <style> $article_css </style> EOS; } } ?>
解決方法
変数に代入しているのに何故?と思い見返すと、post->ID は そのままでOKのはず。
assumed 'article_css'this will throw an Error in a future version of PHP
と書いてあるので
「article_css」→「『’article_css’』として文字列で認識させると解決できそうです」
<?php if (is_single()) { $article_css = get_post_meta($post->ID,'article_css',true); if($article_css) { echo <<<EOS <style> $article_css </style> EOS; } } ?>
まとめ
今回のエラーは“クオートされてない文字列が非推奨”になったからではなく文字列として返していなかったのがそもそもの原因のようです。
参考サイト PHPでは未定義の定数は文字列として処理される
この記事が役に立ったと思ったらポチッ!っと応援お願いします。
↓ ↓
コメント
[…] WordPressで「Warning: Use of undefined constant article_css – assumed ‘article_cssR… […]