我试图为自定义帖子类型整理WordPress查询,但我无法使其正常工作。
帖子类型为events
。名为sticky
的{{3}}字段(是/否)用于排序(顶部的粘性),另一个名为glamrock
的ACF字段(是/否)用于排除某些帖子。
结果是,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
并未改变任何内容。它似乎仍按日期/时间排序。
高级自定义字段类型是单选按钮。
除了参数之外,我还包括循环。
答案 0 :(得分:1)
由于Model.find({ [key] : { $regex : search } })
为非数字
meta_value
meta-key
答案 1 :(得分:0)
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() ) : $bpb_query->the_post();
//show post
endwhile;
endif;