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)で空ではないという条件を加えて、回避したというわけです。



Visual Studio Codeを使ったコード整形方法(Fomatter)
MAMPでローカル開発環境にWordPressをインストールする手順
常時SSL化の設定をしたのに「保護された通信」が表示されない時はパスにHTTPが残っているのかも?
WordPressのカスタム投稿タイプを追加後、ページは存在しているはずなのに404になる場合の解決方法
効率的なマークアップが出来るようになるEmmetでCSSを書く時の基本
Google Maps APIでピンのアクティブ時にピン画像を変える方法
スライドを簡単に実装できるJavaScriptライブラリ「Swiper」
EJSのincludeで別ファイルを読み込むときの画像パスを指定する方法
既存プロジェクトにCompassが導入されている場合に備えて、最低限Sassのコンパイルだけでも行えるようにしておく
Vue.jsでtemplateタグ内にscriptやstyleタグを生成する方法|Tags with side effect are ignored
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Path Finder 8の一括名称変更で使える設定サンプルまとめ
CSS Nite in Kobe, vol.54「XDで作ったワイヤーフレームを元に制作するウェブビジュアルデザインと精度の高いプロトタイプをコーダーに渡すときのポイントのセミハンズオン」に参加してきました
Chrome拡張機能の「Wappalyzer」を使ってウェブサイトの使用技術を確認する
Hazelがちゃんと動作していない?そう思ったときに確認すること
効率的に作業をこなしていくための時間術「ポモドーロテクニック」とは?
Ulyssesの外部フォルダ機能を使って、原稿をGit管理しながらUlyssesで編集する方法
Illustratorでスクリプトを実行するいくつかの方法
一般的によく使われているテキストエディタでのEmmetの設定方法まとめ
Alfredの検索ボックスを、磨りガラスのように背景がぼやけた見た目にする方法
ウェブサイト上で簡単にWYSIWYGエディタを実装する「TinyMCE」