WordPress 后台分类目录自定义显示顺序
WordPress 后台的分类目录(包括分类法和标签)默认按名称(name)排序。有时,我们可能希望按照创建顺序(即 ID 排序)或其他方式显示。修改核心文件是一种方法,但请注意,直接修改 WordPress 核心文件不是推荐做法,因为更新 WordPress 时会覆盖你的修改。更推荐使用插件或代码片段(functions.php)来实现。
以下提供两种历史版本的修改方法作为参考,并附上更安全的替代方案。
方法一:修改核心文件(不推荐,仅作记录)
此方法涉及直接编辑 WordPress 核心文件,适用于特定旧版本。
对于 WordPress 4.6 及以上版本
-
修改分类目录管理页面的排序
打开文件:wp-admin/edit-tags.php
找到代码:$dropdown_args = array(
在其参数数组中,将:'orderby' => 'name',
修改为:'orderby' => 'id', -
修改文章列表页及文章编辑页的分类排序
打开文件:wp-includes/class-wp-term-query.php(在 WordPress 4.6 中大约在第 175 行)
找到代码:$this->query_var_defaults = array(
在其参数数组中,将:'orderby' => 'name',
修改为:'orderby' => 'id',
对于 WordPress 4.0 至 4.5 版本
-
修改分类目录管理页面的排序
打开文件:wp-admin/edit-tags.php
找到代码:$dropdown_args = array(
在其参数数组中,将:'orderby' => 'name',
修改为:'orderby' => 'id', -
修改文章列表页及文章编辑页的分类排序
打开文件:wp-includes/taxonomy.php(在 WordPress 4.5 中大约在第 1174 行)
找到函数:function get_terms( $args = array(), $deprecated = '' ) {
在其默认参数数组中,将:'orderby' => 'name',
修改为:'orderby' => 'id',
完成上述修改后,后台分类目录的显示顺序将变为按 ID(即创建时间)排序。
方法二:推荐方案——使用代码片段(functions.php)
将以下代码添加到当前主题的 functions.php 文件中,可以更安全地修改后台分类目录的排序方式,且不受 WordPress 更新的影响。
// 修改后台所有分类法(包括分类目录和标签)的默认排序为按 ID
function modify_backend_term_order( $args, $taxonomies ) {
// 确保只在后台生效
if ( is_admin() ) {
$args['orderby'] = 'id';
$args['order'] = 'DESC'; // 可选:ID 降序,即最新创建的在前
}
return $args;
}
add_filter( 'get_terms_args', 'modify_backend_term_order', 10, 2 );
这段代码通过 get_terms_args 过滤器,在后台(is_admin())将所有分类法查询的排序字段改为 id,并可以指定排序方向。你可以将 'order' => 'DESC' 改为 'ASC' 或根据需要调整 orderby 为其他字段,如 count(文章数)、slug 等。
总结
虽然直接修改核心文件可以快速生效,但存在维护风险。对于长期使用的网站,强烈建议采用添加代码片段到 functions.php 或使用专用插件的方式来定制后台分类目录的显示顺序,这更符合 WordPress 的最佳实践。