我有一个自定义帖子类型,其中包含一个 ACF 复选框来定义帖子是否被推荐。我想在一个页面上显示 6 个精选帖子和 6 个非精选帖子,因此创建了 2 个带有单独参数的WP_Query循环。虽然特色和非特色的分离是有效的,但该页面总共只显示 6 个帖子,我不确定如何解决这个问题?
我的代码:
<?php
$args1 = array(
post_type => 'fairs',
posts_per_page => -1,
showposts => 6 ,
meta_key => 'start',
orderby => 'meta_value_num',
order => 'ASC'
);
$new1 = new WP_Query($args1);?>
<?php while ($new1->have_posts()) : $new1->the_post();?>
<?php $field = get_field( 'wa_feature', get_the_ID() ); if ( true == $field ):?>
Featured Posts
<?php endif;?>
<?php endwhile; wp_reset_postdata();?>
<?php
$args2 = array(
post_type => 'fairs',
posts_per_page => -1,
showposts => 6 ,
meta_key => 'start',
orderby => 'meta_value_num',
order => 'ASC'
);
$new2 = new WP_Query($args2);?>
<?php while ($new2->have_posts()) : $new2->the_post();?>
<?php $field = get_field( 'wa_feature', get_the_ID() ); if ( false == $field ):?>
Non-featured Posts
<?php endif;?>
<?php endwhile;?>
你的WP_Query
不对。你($args1 = $args2)
执行两个完全相同的查询,并期望从它们那里得到不同的结果。此外,您将meta_key
放入查询参数中,但没有告诉要比较的内容以及如何比较。
根据您选择的类型,正确的语法,如果您的元文件名为featured
并且查询可以是:
args1 = array(
'post_type' => 'fairs',
'posts_per_page' => -1,
'meta_key' => 'featured',
'meta_value' => true //or 1, or 'yes` depending of ACF type you have choose
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
args1 = array(
'post_type' => 'fairs',
'posts_per_page' => -1,
'meta_key' => 'featured',
'meta_value' => false//or 0, or 'no`
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
或者,如果此featured
字段仅存在于featured
帖子中,则
args1 = array(
'post_type' => 'fairs',
'posts_per_page' => -1,
'orderby' => 'meta_value_num',
'order' => 'ASC'.
'meta_query' => array(
array(
'key' => 'featured',
'compare' => 'EXISTS',
),
)
);
args1 = array(
'post_type' => 'fairs',
'posts_per_page' => -1,
'orderby' => 'meta_value_num',
'order' => 'ASC'.
'meta_query' => array(
array(
'key' => 'featured',
'compare' => 'NOT EXISTS',
),
)
);
检查 ACF 查询或 Codex 以获取正确的 sintax。
你的论点应该被引用:
array(
'post_type' => 'fairs',
'posts_per_page' => 6,
'meta_key' => 'start',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
数组键可以是整数或字符串。在 PHP array()
文档中阅读更多内容。
在这种情况下,您也应该只使用posts_per_page
(并删除showposts
,在WP 2.1中被posts_per_page
取代)。