WordPress:如何按ACF自定义字段对内容进行排序?

时间:2014-11-20 13:42:26

标签: php wordpress advanced-custom-fields

使用高级自定义字段插件,我创建了一个包含6种成员资格类型的选择下拉列表。我的所有商家信息'使用此自定义字段将分配6中的一个。

ACF field: Membership Type

我想显示所有商家信息'由:

Ultimate Plus
终极
专业
商业
商务

按照这个特定的顺序,那些支付最高级别会员资格的人有他们的列表'出现在页面顶部。

我预计它与我刚刚发现的相似但完全不确定:

// 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 个答案:

答案 0 :(得分:3)

你快到了

如果您将高级自定义字段中的选项更改为

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',
));

它会获得所有具有值集的帖子,并按照您想要的成员资格类型进行排序。

我在本地设置上试过这个以确认这一点。