web-dev-qa-db-ja.com

IF/WHILEステートメントで使用するCPT投稿IDの配列を作成する方法

私はACFを使用していて、ページ上で次のことをやろうとしています

  1. カスタム投稿タイプ「サービス」の投稿IDの配列を作成します。
  2. 配列に少なくとも1つの投稿IDがあるかどうかを確認してください
  3. その場合、各投稿IDについて、次のように表示します。<?php the_field('the_field','POST_ID');?>
  4. そうでない場合は、「サービスはありません」とエコーします。
1
Ryan Brooks

WP_Queryfieldsパラメータを使用してIDだけを取得し、foreachループでそれらを反復することができます。

$args = array(
    'post_type' => 'services',
    'posts_per_page' => -1,
    'fields' => 'ids',
);
$query = new WP_Query( $args );

if( $query->have_posts() ){
    foreach( $query->posts as $id ){
        the_field( 'the_field', $id );
    }
} else {
    echo 'There are no services';
}
3
Milo