繁体   English   中英

我可以通过自定义分类法和 ACF 文件字段的状态过滤 wp 查询吗?

[英]Can I filter a wp query by custom taxonomy and the status of an ACF file field?

我在这个问题上有点挣扎。 我有一个名为jobs的自定义帖子类型,它使用自定义分类法来标记工作状态; 已预订、完成等。自定义字段已使用 ACF 完成。

我想要做的是显示具有特定工作状态但尚未上传文件的工作列表。

例子; 作业状态 = 完成。 报告文件字段为空

到目前为止我得到的代码如下。 目前它所做的只是显示第一个 CPT 'jobs' 的 4x 实例 - 过滤器似乎没有什么区别。

<?php 

// get posts
$reports = array (
  'post_type' => 'jobs',
  'post_status' => 'inherit',
    'tax_query' => array (
      array (
        'taxonomy' => 'job_status',
        'field' => 'slug',
        'terms' => array( 'complete' )
      ),
    ),
    'meta_query' => array (
      'relation' => 'AND',
        array (
          'key' => 'report_upload',
          'value' => '',
          'compare' => 'NOT EXISTS'
        )
    )
);

if( $reports ): ?>

    <ul>

    <?php foreach( $reports as $reports ): 

        setup_postdata( $reports )

        ?>
        <li>
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?> (date: <?php the_field('start_date'); ?>)</a>
        </li>

    <?php endforeach; ?>

    </ul>

    <?php wp_reset_postdata(); ?>

<?php endif; ?>

可以使用meta_query参数访问自定义帖子类型中的所有 ACF 字段。 例如,如果想要返回所有'post_type' => 'jobs' ,其中 ACF 自定义字段'report_field'为空,您可以使用以下代码:

$args = array (
  'post_type' => 'jobs',
    'tax_query' => array (
      array (
        'taxonomy' => 'job_status',
        'field' => 'slug',
        'terms' => array( 'complete' )
      ),
    ),
    'meta_query' => array (
      'relation' => 'AND',
        array (
          'key' => 'report_field',
          'value' => "",
          'compare' => "="
        )
    )
);

如果您希望显示不存在report_field jobs ,您可以将'compare' => "="参数更改为'compare' => "NOT EXIST"

您可能会遇到的另一个陷阱是 post_status,因此请务必确保您的 custom_post_type 的 post_status 已发布。 否则,您可能需要为 post_status 使用不同的参数,例如:

'post_status' => 'inherit'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM