WordPress页面分类标签生效验证及浏览器审查代码查询
你的WordPress分类/标签问题解决方案
1. 怎么确认页面/文章已经关联上对应的分类或标签?
我给你几个靠谱的验证方法,从简单直观到精准权威:
- 后台直接检查:
文章的话,进入「文章」编辑页,右侧边栏的「分类」「标签」模块里,选中的分类会有蓝色底色,已添加的标签会显示在输入框下方的标签堆里。
页面因为你用了插件,去「页面」编辑页找插件加的分类/标签操作UI(一般也在右侧边栏,逻辑和文章的模块差不多),看看有没有选中的分类或者已添加的标签即可。 - 数据库查底(最准确):
要是想彻底确认没毛病,直接查数据库最靠谱:
WordPress的分类、标签都存在wp_terms表,页面/文章和它们的关联关系在wp_term_relationships表。先找到目标页面/文章的ID(编辑页地址栏里post=后面的数字),然后在wp_term_relationships里搜索object_id等于这个ID的记录,对应的term_taxonomy_id去wp_term_taxonomy表里查询:taxonomy字段是category就是分类,是post_tag就是标签——如果你的插件用了自定义分类法,这里可能是page_category之类的自定义值。 - 前端模板插代码测试:
在你的页面模板(比如page.php或者自定义模板文件)里加一段测试代码,直接输出当前页面的分类/标签:
访问这个页面,要是能看到对应的分类/标签名称,说明关联成功了。// 输出页面默认分类(如果插件用了默认分类法) $categories = get_the_category(get_the_ID()); if($categories) { echo '当前页面分类:'; foreach($categories as $cat) { echo $cat->name . ' '; } } // 输出页面默认标签 $tags = get_the_tags(get_the_ID()); if($tags) { echo '<br>当前页面标签:'; foreach($tags as $tag) { echo $tag->name . ' '; } } // 如果插件用了自定义分类法,把这里的'page_category'换成插件的分类法slug $custom_terms = get_the_terms(get_the_ID(), 'page_category'); if($custom_terms) { echo '<br>自定义分类:'; foreach($custom_terms as $term) { echo $term->name . ' '; } }
2. 能不能通过浏览器审查代码看文章/页面的分类或标签?
必须可以!不过得看你的主题有没有在前端输出这些信息:
- 查看body标签的类名:
大部分WordPress主题会在<body>标签里添加分类、标签的类名,比如:
这里的<body class="page page-id-123 page-template-default category-news tag-tutorial">category-news就是说这个页面属于news分类,tag-tutorial就是带了tutorial标签。右键页面点击「检查」,找到<body>标签就能看到这些类。 - 查看head里的meta标签:
有些主题会在<head>里添加分类/标签的meta信息,比如:
不过这种不如body类常见。<meta name="keywords" content="教程, WordPress">
要是你的主题没输出这些内容,那审查代码就看不到,这时候还是得用后台或者数据库的方法验证。
额外解决:插件生效问题&按分类/标签排序页面无效
你提到用插件给页面加了分类/标签,但按查询参数排序没用,还有获取子页面的代码问题,我给你几个排查方向:
- 先搞清楚插件用的分类法slug:
很多页面分类插件不会用默认的category和post_tag(这俩默认是给文章用的),而是自己创建自定义分类法,比如page_category、page_tag。你可以去插件设置里找,或者用之前的数据库方法,查看wp_term_taxonomy表的taxonomy字段是什么。 - 修改获取子页面的代码参数:
如果你现在用get_pages()获取子页面,得在参数里指定分类法和对应的分类ID/名称,举个例子:
要是用$child_pages = get_pages(array( 'child_of' => get_the_ID(), // 获取当前页面的子页面 'tax_query' => array( array( 'taxonomy' => 'page_category', // 替换成你插件的分类法slug 'field' => 'slug', 'terms' => 'your-category-slug', // 要筛选的分类的slug ), ), 'orderby' => 'title', // 按标题排序,也可以换成'taxonomy'按分类排序 'order' => 'ASC' ));WP_Query的话,参数类似:$page_query = new WP_Query(array( 'post_type' => 'page', 'post_parent' => get_the_ID(), 'tax_query' => array( array( 'taxonomy' => 'page_category', 'field' => 'slug', 'terms' => 'your-category-slug', ), ), 'orderby' => 'title', 'order' => 'ASC' )); - 确认插件真的关联上了:
要是改了代码还是没用,大概率是插件没正确把分类/标签和页面绑在一起。用之前的数据库方法,看看wp_term_relationships里有没有这个页面ID和对应分类/标签的关联记录。要是没有,要么是你后台操作时没保存好,要么是插件有bug,可以换个同类插件试试。
内容的提问来源于stack exchange,提问作者Connor Crawford




