PHP7.2のWordPressでWarning: count(): Parameter must be an array or an object that implementsが表示された時の治し方
PHP7.2でWordPressを使用していると、「Warning: count(): Parameter must be an array or an object that implements Countable in …サイトのURL/wp-includes/post-template.php on line 284」とエラーメッセージが表示されることがあります。

今回はその治し方についでです。
post-template.phpの修正
治すには「wp-includes/post-template.php」を開きます。
284行目付近が下記のようになっていると思います。
// If post password required and it doesn't match the cookie.
if ( post_password_required( $post ) )
return get_the_password_form( $post );
if ( $page > count( $pages ) ) // if the requested page doesn't exist
$page = count( $pages ); // give them the highest numbered page that DOES existそれを下記のように変更すればエラーメッセージは消えます。
// If post password required and it doesn't match the cookie.
if ( post_password_required( $post ) )
return get_the_password_form( $post );
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;
}原因
PHP7.2からcount関数の仕様が変更されました。
今まではcount(NULL)では何もなく0を返していましたが、PHP7.2からはWarningになるみたいです。
count() will now yield a warning on invalid countable types passed to the array_or_countable parameter.
今回の場合はcount($pages)の$pagesの値が空(NULL)になっていたため、エラーになってしまいました。
ですから、if(!empty)で空ではないという条件を加えて、回避したというわけです。



Neovimを使い始める最初の一歩として便利な「LazyVim」
Nuxt.jsでVuexストア連携を行う方法|Nuxt.jsの基本
JavaScriptのテンプレートリテラル内で条件分岐を行う方法
Visual Studio Codeで簡易的なローカルサーバーを起動して、コード保存時に自動でブラウザをリロードする拡張機能「Live Server」
Movable Typeでコメントアウトして出力時に無視する方法
scpコマンドでターミナル接続先のリモートファイルをローカルにダウンロードする方法
CSSだけで画像の比率を保ってトリミングできる「object-fit」
iTerm2で起動時に左上に表示される「Tip of the Day(今日のTip)」を非表示にする方法
ブラウザでこれ以上スクロールできない場合の挙動を制御する「overscroll-behavior」プロパティ
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Dashの環境設定やスニペットのバックアップ・同期方法
Jedit Ωの半角・全角変換機能を使って、全角と半角をすばやく変換する方法
Keyboard Maestroを使ってGyazoアプリをショートカットキーで起動する方法
Keyboard Maestroのこれだけ覚えておけば良さそうなアクション紹介
CSS Nite in Kobe, vol.56「プラグマティックペルソナとマイクロカスタマージャーニーを作ってみよう」に参加してきました
日々のちょっとした作業を効率的にする小技 #1日1Tips – 2019年7月
Macのバッテリー効率を上げるアプリ「Endurance」
コーディングで「スペース」と「タブ」のどちらを使えばいいのか?
Figmaでロゴやアイコンなどのビットマップ画像をベクターデータにトレースするプラグイン「Image tracer」
一瞬で日時を取得するKeyboard Maestroのタイムスタンプ機能についてまとめる