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

WordPress如何获取自定义分类法值生成关联文章链接

解决方法

你之前的代码失效是因为get_term()的用法错误——这个函数需要传入术语ID和分类法名称,不能直接传分类法名。要自动获取当前Testimonial关联的Company页面链接,可采用以下两种正确实现方式:

方式一:直接获取术语Slug

这种方式更简洁,适合只需要Slug拼接URL的场景:

// 获取当前Testimonial文章关联的company_key分类术语Slug
$company_slugs = wp_get_post_terms(get_the_ID(), 'company_key', ['fields' => 'slugs']);

// 验证是否获取到有效数据
if (!empty($company_slugs) && !is_wp_error($company_slugs)) {
    $company_slug = $company_slugs[0];
    // 生成并输出链接,用esc_url保证URL安全
    echo '<a href="' . esc_url('https://mywebsite.com/company/' . $company_slug) . '">See Company</a>';
} else {
    // 没有关联术语时的 fallback 内容
    echo '<span>No Related Company</span>';
}

方式二:获取完整术语对象

如果后续需要用到术语名称、描述等其他信息,可使用这种方式:

$company_terms = get_the_terms(get_the_ID(), 'company_key');

if (!empty($company_terms) && !is_wp_error($company_terms)) {
    // 取第一个关联的术语(假设每个Testimonial只关联一个company_key)
    $company_term = reset($company_terms);
    echo '<a href="' . esc_url('https://mywebsite.com/company/' . $company_term->slug) . '">See Company</a>';
}

重要提示

  • 代码要放在Testimonial的循环模板内,get_the_ID()才能正确获取当前文章ID。
  • esc_url()是WordPress安全规范,必须添加以避免URL注入风险。
  • 若存在一个Testimonial关联多个company_key的情况,需根据业务逻辑调整取术语的逻辑(比如循环输出多个链接)。

内容的提问来源于stack exchange,提问作者Alex Harris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:29:56