ノウハウ

WordPressで「A non-numeric value encounters in…」と表示された時の対処法

こんにちは、リオ(@Rio_reach)です。

YoutubeではWordPressでのブログ運営に役立つ情報を発信していまして、コメントやTwitterでの相談も受け付けております。

そんな私のTwitterにこんな相談がありました。

Nayami2 Nayami

以下の動画で、WordPressテーマ:JINで人気記事一覧の作成方法について解説しているのですが、その手順を行ったところ、上記の警告が発生した模様です。

リオ
なお、私の環境ではJINのテーマバージョンとPHPのバージョンを同じにしても発生しませんでした。
使っているレンタルサーバー、もしくはWordPressのバージョンによって挙動は異なるようですね。

本記事では、

Warning: A non-numeric value encounters in /XXXX/functions.php on line 1064

が発生する原因と対応方法について書いていきたいと思います。
同じ警告で悩んでいる方の参考になればとても嬉しいです。

「A non-numeric value…」の警告の症状

人気記事一覧の表示の下に「A non-numeric value…」というPHPの警告がスマホ画面に表示される。
Nayami2

「A non-numeric value…」の警告が発生した環境

  • WordPressテーマ:JIN
  • レンタルサーバー:エックスサーバー
  • PHPバージョン:7.2.17
  • WordPressテーマ:未確認

※WordPressテーマのバージョンは未確認だったのですが、もしかしたら5.2以降は発生しないかもです。
詳細はWordPressテーマ5.2以降では発生しないかもに記載しています。

「A non-numeric value…」の原因

WordPressはPHPというプログラミング言語でできているのですが、そのPHPのエラーです。

内容は表示されている通り、
「functions.phpの1064行目で、数字じゃない値を計算しようとしてる」
という警告です。

functions.phpは、以下の手順でWordPress管理画面で確認できます。
Mikata

function.php確認方法
  1. WordPressの管理画面のWordPressの左メニューから[外観]→[テーマエディタ]をクリック
  2. [編集テーマを選択]で、お使いのWordPressのテーマを選択 ※1
  3. [選択]ボタンをクリック
  4. テーマのための関数(function.php)をクリック

※1 子テーマを使っている場合は、親テーマのfunction.phpを引き継いでいるため、親テーマを確認します。

そこで、functions.phpの1064行目を見てみますと、
Geiinn2

update_post_meta( $postID, $key, $sum_count + 1 );

となっています。

この構文で数値計算しているのは、

$sum_count + 1

なので、ここが怪しいですよね。

「A non-numeric value…」の対応方法

というわけで今回の対処方法です。要は数値でない、と判断されている変数に明示的に(int)をつけて数値にします。

JIN Forum Xサーバーのエラーログにて発生したエラーの解消方法を参考にさせていただいております。

対応方法
  1. WordPressの管理画面のWordPressの左メニューから[外観]→[テーマエディタ]をクリック
  2. [編集テーマを選択]で、お使いのWordPressの子テーマが選択されていることを確認。
    選択されていない場合は子テーマに変更し、[選択]ボタンをクリック
  3. テーマのための関数(function.php)をクリック
  4. 以下のコードをコピペ
    update_post_meta( $postID, $count_key, (int)$count_array );
    update_post_meta( $postID, $key, (int)$sum_count + 1 );
  5. [ファイルを更新]をクリック
Taiou

親テーマのfunction.phpを修正すると、後にWordPressのテーマがアップデートされた時に上書きされてしまう可能性があるので、子テーマのfunctions.phpを修正します。

WordPressテーマ5.2以降では発生しないかも

また、後から情報を見つけたのですが、WordPressテーマ5.2ではWordPress側でこの問題が修正されるとの報告があったようです。
ですので、WordPress5.2で修正できるか確認は取れていませんが、試してみるのもいいかもしれません。

参考:[WordPress] なぜ修正されない? PHP Warning: A non-numeric value encountered in Date.php on line 694

まとめ

この記事では、WordPressのfunctions.php内で発生する「A non-numeric value encounters in…」の警告の対応方法について解説していきました。

相談された方にこの方法を試してもらったところ、無事に警告が消えたということ。良かったです!
というわけで、もし同じ症状で悩まれている方がいらっしゃいましたが、ぜひお試しください。

また、Youtubeでは主にWordPressでのブログ運営に役立つ情報を初心者目線を忘れないうちにコツコツ発信しております。
よければコメントやチャンネル登録していただけると嬉しいです。

リオのYoutubeを見てみる

ブログやYoutubeの更新はTwitterにてお知らせしておりますので、興味がある方はぜひフォローしていただければ嬉しいです!

ここまで読んでいただき、ありがとうございました!