acf_get_posts()


WordPressの関数acf_get_posts()は、Advanced Custom Fields (ACF)プラグインの一部で、特定のカスタムフィールドを持つ投稿を取得するために使用されます。この関数は、投稿を条件に基づいてフィルタリングし、カスタムフィールドの値に基づいて検索を行います。

構文

acf_get_posts( array $args = array() );
  • $args (array) — 投稿を取得するための引数を設定する配列。主にWP_Queryの引数が使用されます。

例1: 投稿をタイトルでフィルタリング

タイトルに「テスト」という文字列を含む投稿を取得します。

<?php 
$posts = acf_get_posts( array(
    'post_type' => 'post',
    's' => 'テスト'
) );
?>

例2: カスタムフィールドでフィルタリング

カスタムフィールド「price」が1000以上の投稿を取得します。

<?php 
$posts = acf_get_posts( array(
    'post_type' => 'product',
    'meta_query' => array(
        array(
            'key' => 'price',
            'value' => 1000,
            'compare' => '>='
        )
    )
) );
?>

例3: 特定のカテゴリの投稿を取得

「news」カテゴリの投稿を取得します。

<?php 
$posts = acf_get_posts( array(
    'post_type' => 'post',
    'category_name' => 'news'
) );
?>

例4: 取得した投稿をループで表示

取得した投稿をループで表示します。

<?php 
if( $posts ):
    foreach( $posts as $post ):
        setup_postdata( $post );
        the_title();
    endforeach;
    wp_reset_postdata();
endif;
?>

例5: 投稿のカスタムフィールド値を表示

各投稿のカスタムフィールド「price」の値を表示します。

<?php 
if( $posts ):
    foreach( $posts as $post ):
        setup_postdata( $post );
        $price = get_field('price');
        echo $price;
    endforeach;
    wp_reset_postdata();
endif;
?>

注意点

  • 関数はACFプラグインが有効である必要があります。
  • 引数に渡す値はWP_Queryの引数と同様の形式です。