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

如何在WordPress的PHP代码中获取自定义分类法页面URL?

获取WordPress自定义分类法术语页面URL的正确方法

你之前用的get_post_type_archive_link()是用来获取自定义文章类型的归档页面URL,不是自定义分类法下某个术语的页面URL,所以不符合需求。正确的做法是使用get_term_link()函数,以下分两种场景给出代码:

1. 已知术语信息(slug/ID)时直接获取

如果你明确要获取某个特定术语(比如Fingersoft)的URL,可以通过slug或ID先获取术语对象,再生成链接:

// 通过术语slug获取并输出URL
$term = get_term_by('slug', 'Fingersoft', 'developer');
if ($term && !is_wp_error($term)) {
    $term_url = get_term_link($term);
    echo esc_url($term_url); // 输出目标URL:https://check1.site/developer/Fingersoft/
}

// 或者通过术语ID获取(替换123为实际术语ID)
$term_id = 123;
$term_url = get_term_link($term_id, 'developer');
if (!is_wp_error($term_url)) {
    echo esc_url($term_url);
}

2. 在文章循环中获取当前文章的developer术语URL

因为每篇文章会分配1-2个developer标签,在文章循环内可以这样获取并输出所有关联术语的URL:

// 必须在文章循环内调用
$developer_terms = get_the_terms(get_the_ID(), 'developer');
if ($developer_terms && !is_wp_error($developer_terms)) {
    foreach ($developer_terms as $term) {
        // 输出带链接的术语名称
        echo '<a href="' . esc_url(get_term_link($term)) . '">' . esc_html($term->name) . '</a> ';
    }
}

注意事项

  • 每次调用get_term_link()后记得检查是否返回WP_Error,避免术语不存在时抛出错误;
  • 使用esc_url()和esc_html()做安全转义,防止XSS漏洞。

内容的提问来源于stack exchange,提问作者Frank Smith

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 06:42:44