自定义文章类型Projects分类列表无法显示问题求助
解决自定义文章类型单页分类列表不显示的问题
问题原因分析
get_the_category_list的局限性:这个函数仅针对WordPress默认的category分类法生效,你的自定义文章类型使用的是自定义分类法,因此无法获取到分类内容。- 混淆自定义文章类型与分类法:你第二次尝试中
taxonomy参数填的是自定义文章类型名称ecprojects,这是错误的——自定义文章类型和自定义分类法是两个独立概念,taxonomy需要填写的是你为Projects文章类型注册的自定义分类法的slug,而非文章类型名称。 get_categories的用途错误:这个函数会获取该分类法下的所有分类,而非当前文章关联的分类,不符合你的需求。
正确解决方案
首先确认你的自定义分类法slug(注册分类法时register_taxonomy函数的第一个参数,比如假设你注册的是project_categories),然后用以下代码替换原分类列表部分:
<div class="eck-projects-single-categories"> <?php // 替换为你实际的自定义分类法slug $taxonomy_slug = 'project_categories'; // 获取当前文章关联的该分类法下的所有分类 $assigned_terms = get_the_terms(get_the_ID(), $taxonomy_slug); if ($assigned_terms && !is_wp_error($assigned_terms)) { $term_html = []; foreach ($assigned_terms as $term) { // 获取分类链接并确保有效 $term_link = get_term_link($term); if (!is_wp_error($term_link)) { $term_html[] = sprintf( '<a href="%s">%s</a>', esc_url($term_link), esc_html($term->name) ); } } // 用指定分隔符拼接分类链接 echo implode(' \ ', $term_html); } ?> </div>
关键说明
get_the_terms:专门用于获取指定文章关联的指定分类法下的术语(分类),完全匹配你的需求。- 错误处理:增加
is_wp_error检查,避免因分类法不存在或其他问题导致页面报错。 - 安全处理:使用
esc_url和esc_html对链接和分类名称进行转义,符合WordPress安全规范。
内容的提问来源于stack exchange,提问作者NathanThreelines
相关产品推荐
相关产品推荐

