使用WP_QUERY()输出自定义帖子类型时,前端不显示自定义分类

时间:2020-01-28 作者:The Chewy

我有一个自定义的帖子类型,我正在用它导入网站的首页WP_Query(), 但我似乎无法显示自定义分类法。

我在HTML中放置了一个div,并在其中调用the_category(), 但是没有任何东西输出到前端。

分类法显示在后端,我已经在我想显示的三篇文章中添加了一个自定义分类法(类别)。

<?php 

    $homePageNews = new WP_Query(array(
        \'posts_per_page\' => 3,
        \'post_type\'=> \'news\'
    ));

    while($homePageNews->have_posts()){
        $homePageNews->the_post(); ?>

            <article class="article top-article lastest-top-article">
            <?php the_post_thumbnail(\'post-thumbnail\', 
                [\'class\' => \'image latest-top-image hover-class\']); ?>

                <div class="cat"><?php the_category( \', \' ); ?></div>

                <div class="content-wrapper content-wrapper-mobile-padding">
                    <h3 class="td no-bottom-margin hover-class"><a class="top-latest-heading" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
                    <hr>
                    <p><?php the_content(); ?></h3></p>
                </div>
            </article>


<?php } ?>

<?php  wp_reset_postdata(); ?>

2 个回复
最合适的回答,由SO网友:divyaT 整理而成

从上面的解释中,我了解到您想要显示为该帖子类型注册的自定义分类法。

the_category(); 获取默认帖子附带的默认类别。

要呈现自定义分类,需要添加如下内容:

$terms = get_the_terms( $post->ID , \'your custom taxonomy slug\' );
foreach ( $terms as $term ) {
 echo $term->name;
}

SO网友:Dip Patel

如果您想获得自定义分类法逗号分隔列表,那么我们可以使用WordPress内置函数get_the_term_list()

get_the_term_list( $id, $taxonomy, $before, $sep, $after )
$id        : Post ID
$taxonomy  : Name of taxonomy
$before    : Leading text
$sep       : String to separate tags
$after     : Trailing text

for example,
<?php echo get_the_term_list( $post->ID, \'people\', \'People: \', \', \' ); ?>
或者我们可以一起去

$term_obj_list = get_the_terms( $post->ID, \'taxonomy\' );
$terms_string = join(\', \', wp_list_pluck($term_obj_list, \'name\'));

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post