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

标签 php wordpress advanced-custom-fields

通过使用高级自定义字段插件,我创建了一个包含 6 种成员(member)类型的选择下拉列表。我使用此自定义字段的所有“列表”都分配了 6 个中的一个。

ACF field: Membership Type

我想通过以下方式显示所有“列表”:

终极加成
终极版
专业
商业
业务
免费

按照这个特定的顺序,那些为最高级别成员(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/

相关文章:

php - 尝试显示两个表中的数据

javascript - CSS 样式不适用于 Wordpress 自定义主题

css - PHP 数组在 HTML 标签中显示值但在 CSS 选择器(WordPress)中不显示?

javascript - 使用 Javascript 中的 WP-REST-API 通过自定义字段检索帖子

PHP 更新脚本不工作,ID 没有在应该的时候推送。

php - Laravel-查询获取父级和所有可能的子级

javascript - 如何设置 ACF 字段根据我的自定义层次顺序显示?

php - 如何在 Wordpress 的 PHP if 语句中显示超链接?

php - 无法使用ajax从json获取多个值

子域到根迁移后的 WordPress 永久链接 404 错误