WP查询分类法帖子

时间:2015-10-13 23:58:08

标签: php wordpress taxonomy custom-taxonomy

我正在从头开始构建一个wordpress主题。我有这个分类:

add_action( 'init', 'create_cat_slider' );

function create_cat_slider() {
    register_taxonomy(
        'sliderType','post',
        array(
            'label' => __( 'Slider' ),
            'hierarchical' => true,
        )
    );
}

我有两个帖子附加到此分类enter image description here

enter image description here

现在我有以下循环。它应该为滑块创建两个按钮(与分类相关的帖子数应该等于创建的按钮数)。如上所述,我必须发布与分类相关的帖子。问题是,在执行WHILE之后,我将得到7个按钮。在过去的几个小时里,我一直试图找到解决方案。即使前面的手抄本,作为我的第一个主题,我发现这很难。

                    $args = array(
                        'tax_query' => array(
                            'taxonomy' => 'sliderType'
                        )
                    );
                    $custom_query = new WP_Query( $args );

                    if($custom_query->have_posts()) :
                        //echo $custom_query->found_posts;
                        $i = 0;
                        while ( $custom_query->have_posts() ) : $custom_query->the_post();
                            if($i == 0)
                                $active = 'class="active"';
                            else
                                $active = '';

                            echo '<a href="#" data-target="#bigSlider" data-slide-to="' . $i . '" ' . $active . '></a>';
                            $i++;    
                        endwhile;
                    endif;
                    wp_reset_postdata();

LE:当前版本的代码: 分类

add_action( 'init', 'create_cat_slider' );

    function create_cat_slider() {
        register_taxonomy(
            'slider_ype','post',
            array(
                'label' => __( 'Slider' ),
                'hierarchical' => true,
                'rewrite' => array( 'slug' => 'slidertype' )
            )
        );
    }

查询

                $args = array(
                    'tax_query' => array
                    (
                        array(
                            'taxonomy' => 'slidertype',
                            'field' => 'slug',
                            'terms' => 'slidertype'
                        )
                    )
                );
                $custom_query = new WP_Query( $args );

1 个答案:

答案 0 :(得分:1)

没有简单的方法来查询附加到特定分类的所有帖子。

执行此操作的唯一方法是将所有条款附加到分类法,然后将所有条款ID传递到自定义查询中的tax_query

您可以尝试以下操作:(需要PHP 5.4+,这只是重要的部分。另请注意,您拼错了sliderType; - )

$term_ids = get_terms( 'sliderType', ['fields' => 'ids'] );
$args = [
    'tax_query' => [
        [
            'taxonomy' => 'sliderType',
            'terms' => $term_ids
        ]
    ]
];
$custom_query = new WP_Query( $args );

但是,如果您只需要查询分类中特定术语的帖子,则只需将带有相关字段值的术语ID或slug传递给查询

$args = [
    'tax_query' => [
        [
            'taxonomy' => 'sliderType',
            'field' => 'slug',
            'terms' => 'relevant-term-slug'
        ]
    ]
];
$custom_query = new WP_Query( $args );