【问题标题】:Query and Orderby multiple ACF Fields通过多个 ACF 字段查询和排序
【发布时间】:2017-10-01 18:54:34
【问题描述】:

我有一个名为“property”的自定义帖子类型。

每个属性都有一个名为“property_status”的 ACF 复选框字段,其中包含以下选项:

出租:出租

租用:租用

出售:出售

已售出:已售出的房屋

新:正在建设中

每个属性还有一个名为“property_featured”的精选列表 ACF 单选按钮字段,其中包含以下选项:

没有:没有

是的:是的

我已使用以下代码成功查询要显示的帖子:

$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;
$args = array(
    'post_type' => 'property',
    'posts_per_page' => 12,
    'meta_key' => 'property_status',
    'orderby'    => array(
        'property_featured' => 'ASC',
        'property_status' => 'ASC'
    ),
    'order' => 'ASC',
    'paged' => $paged
    );
$wp_query = new WP_Query( $args );

我需要通过使用单选按钮选择“是:是”来调用特色属性来订购我的帖子,然后在“属性”下显示其他帖子的租金,租金和新,销售的“property_status”,然后出售和新的。某些属性可以在“property_status”字段中选中 2 个复选框,例如出租属性,但这都是“新建”正在建设中。

我尝试了几种不同的查询声明来尝试按我需要的顺序显示这些自定义帖子,但没有任何成功。上面的代码是我正在使用的。

【问题讨论】:

    标签: wordpress advanced-custom-fields


    【解决方案1】:

    WP_Query documentation 中所述,如果您希望按两个不同的 postmeta 进行排序(例如,首先是 property_featured,其次是 property_status),您需要使用“命名元查询”将您的元查询组合并链接到您的 orderby 数组。

    以下是您修改的代码:

    $args = array(
        'post_type'      => 'property',
        'posts_per_page' => 12,
        'paged'          => $paged,
    
        'meta_query'     => array(
            'relation' => 'AND',
            'featured_clause' => array(
                'key' => 'property_featured',
                'compare' => 'EXISTS'
            ),
            'status_clause' => array(
                'key' => 'property_status',
                'compare' => 'EXISTS'
            )
        ),
    
        'orderby'    => array(
            'featured_clause' => 'ASC',
            'status_clause' => 'ASC'
        )
    
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-28
      • 2019-09-01
      • 2019-08-20
      • 2015-08-07
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多