通过使用高级自定义字段插件,我创建了一个包含 6 种成员(member)类型的选择下拉列表。我使用此自定义字段的所有“列表”都分配了 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',
));
它将获取所有设置了值的帖子,并按您想要的成员(member)类型降序排列。
我已在我的本地设置中尝试过此操作以确认这一点。
关于php - WordPress:如何按 ACF 自定义字段对内容进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27041060/