WordPress调用子分类完整流程:新手如何避开这些注意事项
域名服务器搞不懂?WordPress调用子分类时,很多人都会踩坑,尤其在福建地区,不少企业主建站后才发现,子分类调用没做好,整个网站内容结构乱得像一团麻。别急,这篇文章会告诉你怎么在WordPress里正确调用子分类,并且把注意事项都讲透,保证你做完后不踩雷。
需求分析:为什么你得学会调用子分类?
WordPress作为全球使用最多的CMS系统,其分类系统是内容组织的核心。但很多新手在建站时,只关注了文章页面的展示,忽略了子分类调用的重要性。
在福建地区,许多企业官网、电商站点都需要对产品、服务、资讯等信息进行细分。如果你把所有内容都放在同一个主分类下,不仅用户找不到想要的信息,搜索引擎抓取时也会觉得内容重复、结构混乱,直接影响SEO排名。
所以,子分类调用不是可有可无的技巧,而是你建站过程中必须掌握的核心操作之一。
环境准备:确保你的WordPress站点具备调用子分类的基础
在开始动手之前,有几个注意事项需要你提前准备好:
- WordPress版本要求:建议使用5.5及以上版本,确保你有足够的功能支持;
- 主题兼容性:一些低端主题可能不支持子分类调用,最好使用W3C标准通过审核的主题,如Twenty Twenty-One、Astra等;
- 插件支持:虽然WordPress默认支持子分类,但如果你想在首页、侧边栏、自定义页面中调用,可能需要使用插件,比如 WP Show Posts 或 Advanced Custom Fields (ACF);
- FTP或后台权限:如果你需要手动修改代码或上传文件,必须确保你有访问网站根目录的权限。
核心步骤:从后台到代码,一步步教你调用子分类
步骤1:在WordPress后台创建子分类
- 登录后台,进入“文章” > “分类目录”;
- 在主分类下,点击“添加新分类”;
- 填写分类名称(如“福建泉州旅游”、“厦门旅游”),并选择父级分类(比如“福建旅游”);
- 保存后,你会在分类目录中看到这个子分类。
步骤2:使用WordPress默认函数调用子分类
WordPress自带了get_terms()和wp_list_categories()两个函数,用于调用分类。
示例代码1:在页面中调用子分类
<?php
$parent_id = 5; // 替换为你的主分类ID
$args = array('parent' => $parent_id,'orderby' => 'name','order' => 'ASC','hide_empty' => false,
);
$subcategories = get_terms('category', $args);
if (!empty($subcategories)) {echo '<ul>';foreach ($subcategories as $category) {echo '<li><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></li>';}echo '</ul>';
}
?>
这段代码的作用是获取某个主分类下的所有子分类,并显示成一个链接列表。你可以在自定义页面模板、侧边栏小部件中使用它。
示例代码2:使用wp_list_categories()函数调用
<?php
wp_list_categories(array('child_of' => 5, // 主分类ID'title_li' => '', // 不显示标题'taxonomy' => 'category', // 指定分类法'hide_empty' => false,'style' => 'ul'
));
?>
这个函数会直接生成一个无序列表,展示子分类名称,并链接到各自的分类页面。适用于分类页面、侧边栏等场景。
代码/配置示例:如何在主题文件中插入子分类调用
方法1:在首页模板中添加子分类导航
如果你希望在首页顶部显示一个子分类导航,可以将上面的代码插入到index.php或home.php文件中,通常是在<header>部分之后,<main>之前。
方法2:创建自定义小部件
如果你使用的是WordPress小部件功能,可以创建一个自定义小部件,并在后台拖入侧边栏。
创建自定义小部件的步骤:
- 在主题的
functions.php中添加以下代码:
class Sub_Category_Widget extends WP_Widget {function __construct() {parent::__construct('sub_category_widget', // 唯一标识符'子分类导航', // 小部件名称array('description' => '显示某个主分类下的子分类') // 描述);}public function widget($args, $instance) {$title = apply_filters('widget_title', $instance['title']);$parent_id = $instance['parent_id'];echo $args['before_widget'];if (!empty($title)) {echo $args['before_title'] . $title . $args['after_title'];}echo '<ul>';$args = array('parent' => $parent_id,'orderby' => 'name','order' => 'ASC','hide_empty' => false,);$categories = get_terms('category', $args);foreach ($categories as $category) {echo '<li><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></li>';}echo '</ul>';echo $args['after_widget'];}public function form($instance) {$title = !empty($instance['title']) ? $instance['title'] : '子分类导航';$parent_id = !empty($instance['parent_id']) ? $instance['parent_id'] : 5;?><p><label for="<?php echo $this->get_field_id('title'); ?>">标题:</label><input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>"></p><p><label for="<?php echo $this->get_field_id('parent_id'); ?>">主分类ID:</label><input class="widefat" id="<?php echo $this->get_field_id('parent_id'); ?>" name="<?php echo $this->get_field_name('parent_id'); ?>" type="number" value="<?php echo esc_attr($parent_id); ?>"></p><?php}
}
register_widget('Sub_Category_Widget');
- 保存文件后,进入WordPress后台,进入“外观” > “小部件”,你会看到“子分类导航”这个小部件,拖到侧边栏,设置主分类ID和标题即可。
常见报错与解决方案
报错1:调用后没有显示子分类
原因:
- 主分类ID填写错误;
- 子分类尚未发布或设置为隐藏;
- 使用了错误的分类法(比如
post_tag而不是category)。
解决:
- 检查主分类ID是否正确(可以在后台分类目录中查看);
- 确保子分类已经发布,且不隐藏;
- 检查
get_terms()或wp_list_categories()的taxonomy参数是否设置为category。
报错2:调用后显示错误:Notice: Trying to get property 'term_id' of non-object
原因:
- 子分类调用为空,即
get_terms()返回空数组; get_category_link()传入了错误的参数(如非对象)。
解决:
- 添加
if (!empty($categories))判断,避免空对象; - 使用
var_dump($categories)调试,查看是否成功获取分类数据。
报错3:子分类链接无效或404
原因:
- 子分类页面未设置为可访问;
- 分类链接结构被修改(如自定义Permalink);
- WordPress未生成对应的分类页面。
解决:
- 在后台进入“设置” > “固定链接”,确保你的Permalink结构正确;
- 在分类页面中,设置“显示选项”为“显示作为页面”;
- 确保你的分类页面已正确生成。
小结:调用子分类不是难题,关键在细节
调用子分类的过程并不复杂,核心在于理解分类结构、掌握函数调用方式,以及处理常见报错。如果你是刚开始接触WordPress的新人,建议从简单的get_terms()函数入手,逐步掌握更复杂的操作。
在福建地区,很多企业建站时容易忽视子分类的调用,导致内容分散、用户体验差、搜索引擎抓取困难。如果你希望网站内容结构清晰、用户体验好、SEO也达标,那就从现在开始,把子分类调用做好。
你更倾向模板建站还是定制开发?欢迎评论。