我正在尝试整理自定义Post类型的WordPress查询,但我无法使它工作。
post类型为events。高级自定义域字段sticky (是/否)用于排序(顶部粘贴),另一个ACF字段glamrock (是/否)用于排除某些帖子。
结果是,glamrock被排除在外,但是不对粘性进行排序。
如果删除meta_query,排序工作正常,但包括glamrock帖子。
$bpb_args = array(
'numberposts' => -1,
'post_type' => 'events',
'posts_per_page' => 100,
'paged' => get_query_var( 'paged', true ),
'meta-key' => 'sticky',
'meta_query' => array(
array(
'key' => 'glamrock',
'value' => 'no',
'compare' => 'IN',
)
),
'orderby' => 'meta_value',
'order' => 'ASC',
);
$bpb_query = new WP_Query( $bpb_args );
if( $bpb_query->have_posts() ):
while( $bpb_query->have_posts() ) : $bpb_query->the_post();
//show post
endwhile;
endif;更新:
不幸的是,meta_value而不是meta_value_num没有改变任何东西。它似乎仍在按日期/时间进行排序。
高级自定义字段类型是单选按钮。
除了参数外,我还包括了循环。
发布于 2016-01-03 16:34:44
您只需要指定meta_value,因为您的meta-key不是数字的。
'orderby' => 'meta_value'发布于 2016-01-06 21:26:04
@Mihai说得对:meta_value_num是主要问题。我把它改成了meta_value。
下面是有效的查询/循环:
$args = array(
'post_type' => 'events',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_key' => 'sticky',
'orderby' => 'meta_value',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'lizenz_erteilt',
'value' => 'no',
'compare' => 'LIKE',
),
)
);
$query = new WP_Query( $args );
// Loop
if( $query->have_posts() ) :
while( $query->have_posts() ) : $query->the_post();
//show post
endwhile;
endif;https://stackoverflow.com/questions/34578411
复制相似问题