はじめに
以下の記事では、関連記事の中からアイキャッチ画像が設定されていない投稿を除外する方法を紹介しています。
しかし、テンプレートファイル(related-list.php)を子テーマにコピーして直接書き換える手法は、親テーマのアップデートなどでテンプレート構造に変更があった際に影響を受けるリスクがあります。
そこで、ファイルを直接書き換えない「テンプレートフック」を活用した方法に変更します。
この記事では、この方法について説明します。
実装手順
以下のコードをfunctions.phpに追加します。
add_filter('get_related_wp_query_args', function ($args) {
$args['meta_query'] = [
[
'key' => '_thumbnail_id',
'compare' => 'EXISTS',
],
];
return $args;
});
参考:カルーセルからアイキャッチ画像がない投稿を除外する方法
Cocoon設定→カルーセルも関連記事と同じくランダムで投稿を表示するため、アイキャッチ画像のない投稿が出現してしまいます。
そこで、カルーセル表示からもアイキャッチ未設定の投稿を除外していきます。
実装手順
以下のコードをfunctions.phpに追加します。
add_filter('cocoon_carousel_args', function ($args) {
$args['meta_query'] = [
[
'key' => '_thumbnail_id',
'compare' => 'EXISTS',
],
];
return $args;
});
さいごに
今回紹介した方法を使えば、親テーマのアップデートを気にすることなく、安全に関連記事やカルーセルの表示を整えることができます。
アイキャッチ画像のない過去の記事が混ざってしまうのを防ぐことで、サイト全体の見栄えも格段に良くなります。

