J'essaie d'exécuter une requête qui affiche uniquement les éléments qui remplissent une condition dans une zone de sélection Champs personnalisés avancés, mais je ne reçois rien. Voici ma requête. Toute aide serait appréciée:
<?php $args = array(
'post_type' => 'home_plans',
'orderby'=> 'date',
'order' => 'Rand',
'numberposts' => '12',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'display_where',
'value' => 'here',
'compare' => 'LIKE'
)
)
); ?>
<div id="ms-container" class="row archive">
<ul id="posts_list">
<?php $recent_posts = wp_get_recent_posts( $args );
$selected = get_field('display_where');
foreach( $recent_posts as $recent ){
get_template_part( 'template-parts/plan-archive-loop', get_post_format() );
}
//wp_reset_postdata();
?>
</ul>
</div>
{edit} Le code a un peu changé. Voici le nouveau code:
<?php $archive_args = array(
'post_type' => 'speight_home_plans',
'orderby'=> 'title',
'order' => 'ASC',
'posts_per_page' => 12,
'paged' => $paged,
'page' => $paged,
'meta_query' => array(
'key' => 'display_where',
'value' => 'speight',
'compare' => 'LIKE'
)
);
$archive_query = new WP_Query( $archive_args );
if ( $archive_query->have_posts() ) :
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$total_posts = $archive_query->found_posts;
$start_post = ($paged - 1) * $posts_per_page + 1;
$end_post = min($start_post + $posts_per_page - 1, $total_posts);
echo "<p class=results-count>Showing $start_post - $end_post of $total_posts home plans.</p>";
while ( $archive_query->have_posts() ) : $archive_query->the_post();
get_template_part( 'template-parts/plan-archive-loop', get_post_format() );
endwhile;
wp_reset_postdata();
endif;
C’est dans le fichier archive-speight_home_plans.php de mon thème.
Basé sur le codex , le paramètre meta_query
contient un ou plusieurs tableaux avec le paramètre relation
non défini si un seul meta_query
intérieur.
Supprimez également le paramètre page
car il ne sert que pour une page de garde statique.
Votre tableau args devrait ressembler à ça:
$archive_args = array(
'post_type' => 'speight_home_plans',
'orderby'=> 'title',
'order' => 'ASC',
'posts_per_page' => 12,
'paged' => $paged,
'meta_query' => array(
array(
'key' => 'display_where',
'value' => 'speight',
'compare' => 'LIKE'
),
),
);