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

如何同时将WordPress分类术语生成列表并设置slug为类名?

解决WordPress分类术语列表项类名对应slug的问题

我明白你现在的困扰啦——你想让每个分类术语对应的列表项,单独拥有自己的slug作为类名,但目前的代码把所有术语的slug都堆到了每个列表项的类里,这显然不是你想要的效果。咱们来修正一下代码:

<?php
// 获取当前文章的指定分类术语
$terms = get_the_terms($post->ID, 'events17groups');

// 检查是否成功获取到术语且没有错误
if ($terms && !is_wp_error($terms)) :
    echo '<ul>';
    // 循环遍历每个术语
    foreach ($terms as $term) {
        // 为每个列表项单独设置对应术语的slug作为类名,同时做安全转义
        echo '<li class="' . esc_attr($term->slug) . '">' . esc_html($term->name) . '</li>';
    }
    echo '</ul>';
endif;
?>

代码说明:

  • 去掉了原来把所有slug合并成一个类的逻辑,改为在循环每个术语时单独生成列表项,这样每个<li>的class就只会对应当前术语的slug。
  • 使用esc_attr()对slug进行转义,确保类名的安全性(避免特殊字符导致的HTML语法问题或XSS风险)。
  • 使用esc_html()对术语名称进行转义,同样是WordPress开发中的安全最佳实践。
  • 如果你的需求是在列表项里显示术语的slug而不是名称,只需要把esc_html($term->name)替换成esc_html($term->slug)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 02:28:04