[英]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.