You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义文章类型Projects分类列表无法显示问题求助

解决自定义文章类型单页分类列表不显示的问题

问题原因分析

  1. get_the_category_list的局限性:这个函数仅针对WordPress默认的category分类法生效,你的自定义文章类型使用的是自定义分类法,因此无法获取到分类内容。
  2. 混淆自定义文章类型与分类法:你第二次尝试中taxonomy参数填的是自定义文章类型名称ecprojects,这是错误的——自定义文章类型和自定义分类法是两个独立概念,taxonomy需要填写的是你为Projects文章类型注册的自定义分类法的slug,而非文章类型名称。
  3. 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:55:26