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

如何在WordPress中动态获取当前分类页面的父term_id?

解决WordPress分类页面动态获取父term_id的问题

在WordPress的自定义分类页面(比如你用的products分类模板页),可以通过以下方式动态获取当前分类的父term_id,替代手动指定的$term_id = 10:

核心实现思路

借助get_queried_object()函数获取当前页面对应的分类对象,从该对象中提取parent属性(即父分类ID),同时判断当前分类是否为顶级分类(父ID为0),避免无意义的子分类查询。

修改后的完整代码

<?php
// 获取当前分类页面的分类对象
$current_term = get_queried_object();
// 验证当前对象有效且存在父分类
if ($current_term && isset($current_term->parent) && $current_term->parent != 0) {
    $term_id = $current_term->parent;
    $taxonomy_name = 'products';
    $termchildren = get_term_children($term_id, $taxonomy_name);

    echo '<ul>';
    foreach ($termchildren as $child) {
        $term = get_term_by('id', $child, $taxonomy_name);
        // 确保分类项有效再输出,避免报错
        if ($term && !is_wp_error($term)) {
            echo '<li><a href="' . esc_url(get_term_link($child, $taxonomy_name)) . '">' . esc_html($term->name) . '</a></li>';
        }
    }
    echo '</ul>';
}
?>

关键细节说明

  • get_queried_object():在分类、标签、自定义分类等taxonomy页面中,该函数会返回当前对应的WP_Term对象,包含分类ID、名称、父ID等全量属性。
  • $current_term->parent != 0的判断:如果当前分类本身是顶级分类(父ID为0),则跳过子分类查询,避免输出空列表。
  • esc_url()和esc_html():对输出的链接和分类名称进行转义,符合WordPress安全规范,防止XSS漏洞。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 19:45:33