web-dev-qa-db-fra.com

Filtrer un WP Résultat de la requête

J'ai déjà plusieurs filtres de type personnalisé que j'ai déjà filtrés avec WP Query.

Dans cette liste, j'essaie de filtrer les publications ayant une valeur de champ personnalisé spécifique.

J'ai essayé d'utiliser un meta_query, mais le problème est que la valeur select n'existe pas encore. Il n'existe qu'une fois la requête terminée. J'ai déjà la valeur select stockée dans une variable.

<?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();

Comment filtrer les résultats de la première requête avec une autre requête? Serait-ce la bonne façon ou est-ce une autre méthode?

Merci!

3
MauF

J'ai résolu mon problème en relisant la documentation des champs personnalisés d'ACF .

Au lieu de meta_query, j'aurais dû utiliser meta_key.

L'argument correct pour un champ personnalisé est:

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