我已经创建了一个自定义类型的帖子,我希望获得所有类别和标签中的帖子。不幸的是,我不知道为什么它只返回一个帖子(我应该至少有3个或4个)
这是我的代码:
$tag = $_GET["tag"];
$cat = $_GET["cat"];
$args = array(
'post_type' => 'post_product',
'post_status' => 'publish',
'numberposts' => -1,
array(
array(
'taxonomy' => 'cating'
),
array(
'taxonomy' => 'tagging')
)
);
$custom_query = new WP_Query( $args );
if ( $custom_query->have_posts() ):
while ( $custom_query->have_posts() ) :
$custom_query->the_post();
$product_terms = wp_get_object_terms(get_the_ID(), 'cating');
$product_terms_tag = wp_get_object_terms(get_the_ID(), 'tagging');
if(!empty($product_terms) && !empty($product_terms_tag)){
if(!is_wp_error( $product_terms ) && !is_wp_error( $product_terms_tag )){
foreach($product_terms as $term){
if(strcmp($term->name, $cat) == 0) {
foreach($product_terms_tag as $term_tag){
if(strcmp($term_tag->name, $tag) == 0) {
// display here
}
}
}
}
}
}
}
}
有没有人知道为什么我只收到一个帖子或者什么也没有,因为它们是尊重这些条件的帖子。
谢谢。
答案 0 :(得分:0)
您的Taxonomy Query parameters状况不佳。并且您没有使用任何$_GET
变量。
假设您通过$_GET
获取了术语ID,它应该是这样的:
$args = array(
'post_type' => 'post_product',
'post_status' => 'publish',
'posts_per_page' => -1,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'tagging',
'field' => 'id',
'terms' => (int) $tag
),
array(
'taxonomy' => 'cating',
'field' => 'id',
'terms' => (int) $cat
)
)
);
答案 1 :(得分:0)
将$ post_count添加到$ args数组中,并附上您想要的帖子数