PHP:7.2でWordPress post-tenplate.phpのCount関数Warning

WordPress: トラブルシューティング
スポンサーリンク

表示されるワーニングと意味

warning: count(): Parameter must be an array or an object that implements Countable in …(ファイルパス)/wp-includes/post-template.php on line 284

パラメータは配列かカウントできるオブジェクトでなければなりません。post-template.phpの284行目に対する警告。

原因

PHP7.2.0から、count関数が変更になったため。

PHP公式サイトのドキュメンテーションを参照する(日本語)

ワーニング解消方法

post-template.phpの284行目の記述を下記の通り差し替える。

変更作業前の注意

  1. post-template.phpは[wp-includes]の中にあります。(パスは、表示されるワーニングを参照)
  2. 念のため、変更作業前に、post-template.phpをコピーして置くのが良いです。

変更前の記述

if ( $page > count( $pages ) ) // if the requested page doesn’t exist
$page = count( $pages ); // give them the highest numbered page that DOES exist

変更後の記述

if ( ! empty( $pages )) {
if ( $page > count( $pages ) ) // if the requested page doesn’t exist
$page = count( $pages ); // give them the highest numbered page that DOES exist
} else {
$page = 0;
}

変更後のpost-template.phpをサーバにアップロードしてサイトをリロードし、ワーニングが表示されないことを確認する。

以上

「WordPressの困った!」をまとめました。参考になさってください。

タイトルとURLをコピーしました