通过使用高级自定义字段插件,我创建了一个包含 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',
));

它将获取所有设置了值的帖子,并按您想要的成员资格类型降序对其进行排序。

我已经在我的本地设置中尝试过这个以确认这一点。

10-08 20:24