[英]How to query posts which have more than one specific tags?
我想查詢同時具有$apple
和$orange
標簽的特定帖子。
使用tag__in
返回具有$apple
或$orange
標簽的帖子列表。
但是我想要兼具兩者的職位。
這是我的代碼:
$apple = 276; // tag id of Apple
$orange = 29; // tag id of orange
$args = array(
'post_type' => array(
'post',
'review',
'cardguide'
),
'taxonomy' => 'post_tag',
'posts_per_page'=> - 1,
'tag__in' => array(
$apple,
$orange
),
'orderby' => 'id',
'order' => 'DESC',
'meta_key' => 'event_end_date',
'meta_query' => array(
'relation'=> 'AND',
array(
'key' => 'event_start_date',
'value' => $today,
'compare'=> '<=',
'type' => 'DATE'
),
array(
'key' => 'event_end_date',
'value' => $today,
'compare'=> '>=',
'type' => 'DATE'
)
)
);
因為我已經在這里有一個meta_query
,所以我很困惑如何修改它以獲得預期的輸出。 使用=
運算符為這些標簽添加新數組以進行比較無法正常工作。
'meta_query' => array(
'relation'=> 'AND',
array(
'key' => 'event_start_date',
'value' => $today,
'compare'=> '<=',
'type' => 'DATE'
),
array(
'key' => 'event_end_date',
'value' => $today,
'compare'=> '>=',
'type' => 'DATE'
),
array(
'key' => 'tag_id',
'value' => $apple,
'compare'=> '=',
),
array(
'key' => 'tag_id',
'value' => $orange,
'compare'=> '=',
),
)
我認為您應該使用稅收查詢而不是元查詢。
因此,您的代碼將類似於:
$taxQuery = array('relation' => 'AND');
array_push($taxQuery,array(
'taxonomy' => 'post_tag',
'field' => 'id',
'terms' => $apple,
));
array_push($taxQuery,array(
'taxonomy' => 'post_tag',
'field' => 'id',
'terms' => $orange,
));
// And add in your args like tax-query
$args = array(
'post_type' => array(
'post',
'review',
'cardguide'
),
'posts_per_page'=> - 1,
'orderby' => 'id',
'order' => 'DESC',
'meta_key' => 'event_end_date',
'meta_query' => array(
'relation'=> 'AND',
array(
'key' => 'event_start_date',
'value' => $today,
'compare'=> '<=',
'type' => 'DATE'
),
array(
'key' => 'event_end_date',
'value' => $today,
'compare'=> '>=',
'type' => 'DATE'
)
),
'tax_query' => $taxQuery
);
你為什么不嘗試這樣的事情:
$pics = DB::table('pictures')
foreach ($pics as $pica) {
if ($pica->category !== 1)
{
continue;
}
echo ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.