如何在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
相关产品推荐
相关产品推荐

