0

我创建了一个自定义类型的帖子,我想获取一个类别和一个标签中的所有帖子。不幸的是,我不知道为什么它只返回一个帖子(我应该至少有 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

                            }
                        }
                    }
                }
            }
        }
    }
}

有谁知道为什么我只收到一个帖子或什么都没有,因为它们是尊重这些条件的帖子。

谢谢你。

4

2 回答 2

0

您的分类查询参数格式不正确。而且您也没有使用任何$_GET变量。

假设您通过 获取术语 ID $_GET,它应该类似于:

$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
        )
    )
);
于 2013-11-09T13:26:02.180 回答
0

将 $post_count 添加到您的 $args 数组中,其中包含您想要的帖子数

于 2013-11-09T13:27:21.863 回答