web-dev-qa-db-ja.com

フィルタリング WP クエリ結果

WP Queryを使用して既にフィルタしたカスタムタイプの投稿がいくつかあります。

そのリストから、特定のカスタムフィールド値を持つ投稿をフィルタリングしようとしています。

私はmeta_queryを使ってみましたが、問題はselect値がまだ存在していないということです。クエリが終了した後にのみ存在します。選択値はすでに変数に格納されています。

<?php
$args = array(
    'post_type' => array(
        'one',
        'two',
        'three'
    ),
    'meta_query' => array(
        array(
            'key' => 'owner',
            //'value' => $currentSignedUser,
            //'value' => 'Owner'
        ),
    ),
);

$query = new WP_Query( $args );

echo '<h5>List of owned stuff: </h5><br />';

while($query->have_posts()) :
    $query->the_post();
    ?>
    <p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <br />
    <?php
    $owner_select = get_field('owner');

    if ($owner_select) {
        echo 'Owner: ' . $owner_select[display_name];
    } else{
        echo '<p style="color:darkred"><strong>No associated owner for this item.</strong></p>' ;
    }
    ?> </p>
    <?php
endwhile;
wp_reset_query();

最初のクエリ結果を別のクエリでフィルタする方法はありますか。これは正しい方法でしょうか、それとも別の方法でしょうか。

ありがとうございます。

3
MauF

ACFのカスタムフィールドドキュメントを読み直すことで問題を解決しました

Meta_queryの代わりに、私はmeta_keyを使うべきでした。

カスタムフィールドの正しい引数は次のとおりです。

// args
$args = array(
    'numberposts'   => -1,
    'post_type'     => 'event',
    'meta_key'      => 'location',
    'meta_value'    => 'Melbourne'
);
2
MauF