WP 查询分类帖子

WP Query taxonomy posts

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

add_action( 'init', 'create_cat_slider' );

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

我有两个帖子附加到这个分类法

现在我有了下面的循环。它应该为滑块创建两个按钮(与分类相关的帖子数量应该等于创建的按钮数量)。如上所述,我必须发布与分类法相关的帖子。问题是在执行 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 );

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

执行此操作的唯一方法是获取所有附加到分类法的术语,然后将所有术语 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 );