【WordPress】アイキャッチ画像を設定している記事を出力したい《メモ》

WordPress

たまーにあるこの仕様(?)を覚えておくためにメモ。

お知らせ一覧で、アイキャッチ画像が最大4件表示したい場合。
foreachやwhileなどのループ後に if (has_post_thumbnail()) を使用してみたが、最大2件しか表示されず2時間ぐらい悩んでました…。

解決したやり方

参考記事:【wordpress】アイキャッチ画像が設定されている記事のみを出力する方法

参考記事のおかげで、wp_queryのパラメータでアイキャッチ画像の記事だけを取り出せました。ありがとうございます。

実際に使用したコードはこちら

※諸事情のため一部変更しています

global $post;
$oldpost = $post;
$myposts = get_posts(
    array(
    'numberposts' => '4',
    'order' => 'DESC',
    'orderby' => 'post_date',
    'category' => '1', //今回はカテゴリーIDを使用しました
    'meta_key' => '_thumbnail_id', //サムネイルIDがある記事
    )
  );
foreach ($myposts as $post){
  //ループ内処理
}

ちなみにアイキャッチ画像がない記事だけの一覧も作ったのでそちらもメモ

global $post;
$oldpost = $post;
$myposts = get_posts(
  array(
    'numberposts' => '4',
    'order' => 'DESC',
    'orderby' => 'post_date',
    'category' => '1', //同じくカテゴリーIDを使用しました
    'meta_key' => '_thumbnail_id', //サムネイルIDがある記事
    'meta_compare' => 'NOT EXISTS', //サムネイルIDがある記事は出力しない
  )
);

私的に何度か使ったことがあるのでメモしとこうかなと思いました。

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