WordPress meta_query for Custom Post Type with orderby
WordPress meta_query for Custom Post Type with orderby
我正在尝试为自定义 Post 类型整理 WordPress 查询,但我无法使其工作。
post 类型是 events
。一个名为 sticky
(yes/no) 的 Advanced Custom Fields 字段用于排序(贴在上面),另一个名为 glamrock
(yes/no) 的 ACF 字段用于排序排除某些 posts.
结果是,glamrock
被排除,但即时贴未排序。
如果我删除 meta_query
,排序工作正常,但包含 glamrock
post。
$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
并没有改变任何东西。它似乎仍然按 date/time.
排序
高级自定义字段类型是单选按钮。
除了参数,我还包含了循环。
您只需指定 meta_value
,因为您的 meta-key
不是数字
'orderby' => 'meta_value'
@Mihai 说得对:meta_value_num
是主要问题。我把它改成了meta_value
。这是有效的 query/loop:
$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;
我正在尝试为自定义 Post 类型整理 WordPress 查询,但我无法使其工作。
post 类型是 events
。一个名为 sticky
(yes/no) 的 Advanced Custom Fields 字段用于排序(贴在上面),另一个名为 glamrock
(yes/no) 的 ACF 字段用于排序排除某些 posts.
结果是,glamrock
被排除,但即时贴未排序。
如果我删除 meta_query
,排序工作正常,但包含 glamrock
post。
$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
并没有改变任何东西。它似乎仍然按 date/time.
高级自定义字段类型是单选按钮。
除了参数,我还包含了循环。
您只需指定 meta_value
,因为您的 meta-key
不是数字
'orderby' => 'meta_value'
@Mihai 说得对:meta_value_num
是主要问题。我把它改成了meta_value
。这是有效的 query/loop:
$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;