繁体   English   中英

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或带有相关字段值的子句传递给查询

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM