通过使用高级自定义字段插件,我创建了一个包含 6 种成员资格类型的选择下拉列表。我所有使用此自定义字段的“列表”都被分配了 6 个之一。
我想通过以下方式显示所有“列表”:
终极加
最终的
专业的
商业的
商业
自由
在这个特定的顺序中,那些支付最高级别成员(member)费用的人将他们的“列表”显示在页面顶部。
我希望它与我刚刚发现但不确定的情况类似:
// args
$args = array(
'post_type' => 'directory_listings',
'meta_key' => 'free',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => '#',
'value' => array( #, # ),
'compare' => 'IN',
),
),
);
// query
$wp_query = new WP_Query( $args );
?>
<?php if (have_posts()) : ?>
<?php
while( $wp_query->have_posts() ) {
the_post();
ldl_get_template_part('listing', 'compact');
ldl_get_featured_posts();
}
?>
<?php else : ?>
<?php endif; ?>
最佳答案
你快到了
如果您将高级自定义字段中的选项更改为
1 : Free
2 : Business
3 : Commercial
4 : Professional
5 : Ultimate
6 : Ultimate Plus
然后默认为1
通过这样做,您将值设置为数字,默认值为自由值。在管理屏幕中,您将看到文本值。
然后做你的查询试试这个查询
$wp_query = get_posts(array(
'numberposts' => -1,
'post_type' => 'directory_listings',
'meta_key' => 'membership_type',
'orderby' => 'meta_value',
));
它将获取所有设置了值的帖子,并按您想要的成员资格类型降序对其进行排序。
我已经在我的本地设置中尝试过这个以确认这一点。