[詳細カスタムフィールド]選択ボックスに条件を満たすアイテムのみを表示するクエリを実行しようとしていますが、何も表示されません。これが私の質問です。任意の助けがいただければ幸いです。
<?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}コードが少し変わりました。これが新しいコードです。
<?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;
これは私のテーマのarchive-speight_home_plans.phpファイルにあります。
codex に基づいて、meta_query
パラメーターは、relation
パラメーターが設定されていないが1つの内側のmeta_query
配列を持つ1つ以上の配列を含みます。
また、静的フロントページ専用のpage
パラメータも削除します。
あなたのargs配列はそのように見えるはずです:
$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'
),
),
);