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

如何在WordPress自定义主题front-page.php中展示全部分类并获取$term_id

WordPress分类遍历及term_id获取解决方案

一、wp_list_categories仅返回「未分类」的问题修复

默认情况下wp_list_categories()会自动过滤没有关联任何已发布文章的分类,仅展示有内容的分类,所以你只会看到默认的「未分类」目录。
如果需要展示所有分类,只需给函数传入hide_empty参数禁用空分类过滤即可:

wp_list_categories( array(
    'hide_empty' => 0,
    'title_li' => '' // 可选,去掉默认输出的「分类」标题
) );

二、类文章循环遍历分类+获取term_id实现

如果需要自定义分类输出结构、调取分类自定义字段,更推荐用get_terms()获取分类列表后循环遍历,完全可以实现类似文章循环的自定义控制效果,同时可以直接拿到每个分类的$term_id用于调取自定义图片。
以下是可直接放在front-page.php中的示例代码:

// 获取所有文章分类
$all_categories = get_terms( array(
    'taxonomy' => 'category', // 指定查询默认文章分类,自定义分类法替换为对应别名即可
    'hide_empty' => 0, // 展示空分类,不需要的话设为1
) );

// 校验查询结果不为空、无错误
if ( ! empty( $all_categories ) && ! is_wp_error( $all_categories ) ) {
    foreach ( $all_categories as $single_cat ) {
        // 直接获取当前分类term_id
        $current_term_id = $single_cat->term_id;
        // 示例输出结构,可根据需求自行修改
        echo '<div class="category-card">';
        // 此处插入你的自定义图片调取逻辑,直接使用$current_term_id即可
        // 示例:如果自定义图片存在term_meta的cat_cover字段中
        // $cover_img = get_term_meta( $current_term_id, 'cat_cover', true );
        // if ( $cover_img ) echo '<img src="'.esc_url($cover_img).'" alt="'.esc_attr($single_cat->name).'">';
        echo '<h3>' . esc_html( $single_cat->name ) . '</h3>';
        echo '<p>' . esc_html( $single_cat->description ) . '</p>';
        echo '<a href="' . esc_url( get_term_link( $single_cat ) ) . '">进入分类</a>';
        echo '</div>';
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:15:07