WordPress如何显示自定义文章类型(Custom Post Type)的分类
问题原因及解决方案
导致get_terms()返回空数组最常见的原因是get_terms默认隐藏没有关联文章的分类,另外还有固定链接未刷新的常见问题,按以下步骤排查修正即可:
- 修正分类查询代码,显式设置不隐藏空分类
将你原有的分类查询代码替换为以下内容:
<?php $taxonomy = 'ebooks-category'; // 显式指定hide_empty为false,即使分类下没有文章也会返回 $terms = get_terms([ 'taxonomy' => $taxonomy, 'hide_empty' => false, ]); if ( $terms && !is_wp_error( $terms ) ) : ?> <ul> <?php foreach ( $terms as $term ) { ?> <li><a href="<?php echo get_term_link($term->slug, $taxonomy); ?>"><?php echo $term->name; ?></a></li> <?php } ?> </ul> <?php endif;?>
- 刷新WordPress重写规则
进入WordPress后台,依次点击【设置】→【固定链接】,无需修改任何配置,直接点击页面底部的【保存更改】按钮,即可刷新自定义文章类型和分类法的重写规则。 - 确认基础配置正常
- 检查后台【Ebooks】→【Category】下已经创建了分类项
- 可尝试给至少一篇Ebook文章分配已创建的分类,再查看前端输出
内容的提问来源于stack exchange,提问作者user11699996
相关产品推荐
相关产品推荐

