簡體   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