如何在自定义文章类型research中显示可点击的topics分类列表?
嘿,这个问题很好解决!你只需要在content-research.php里加一段适配你自定义分类的代码就行,我给你写好了直接能用的版本:
具体实现步骤
直接在content-research.php文件中你想要展示分类列表的位置(比如文章标题下方、正文开头或结尾)插入以下代码:
<?php // 获取当前research文章所属的topics分类 $assigned_topics = get_the_terms( get_the_ID(), 'topics' ); // 检查是否成功获取到分类,且没有错误 if ( $assigned_topics && ! is_wp_error( $assigned_topics ) ) : ?> <div class="research-topics-container"> <span class="topics-title">所属主题:</span> <ul class="topics-list"> <?php foreach ( $assigned_topics as $topic ) : ?> <li> <a href="<?php echo esc_url( get_term_link( $topic ) ); ?>" title="<?php echo esc_attr( sprintf( '浏览所有%s主题的文章', $topic->name ) ); ?>"> <?php echo esc_html( $topic->name ); ?> </a> </li> <?php endforeach; ?> </ul> </div> <?php endif; ?>
代码细节说明
get_the_terms( get_the_ID(), 'topics' ):核心函数,第二个参数topics必须和你注册自定义分类时的slug完全匹配,这样才能精准获取到对应分类。- 先做了错误判断,避免没有分类时出现报错。
- 用
esc_url()、esc_attr()、esc_html()做了安全转义,这是WordPress开发的最佳实践,能防止XSS漏洞。
可选:美化样式
如果想让分类列表看起来更美观,可以在主题的CSS文件里添加这段样式:
.research-topics-container .topics-list { list-style: none; padding: 0; margin: 8px 0 16px; } .research-topics-container .topics-list li { display: inline-block; margin-right: 12px; background-color: #f5f5f5; padding: 4px 10px; border-radius: 6px; } .research-topics-container .topics-list li a { text-decoration: none; color: #333; } .research-topics-container .topics-list li:hover { background-color: #e0e0e0; }
这样就能在research文章页面显示可点击的topics分类列表了,逻辑和你之前处理普通博客文章分类的方式一致,只是针对性替换了自定义分类的标识而已。
内容的提问来源于stack exchange,提问作者mwz
相关产品推荐
相关产品推荐

