在本站之前的文章中,我推荐过 WordPress 排序插件 Anything Order ,这个插件使用起来很方便,可有时候会和我们使用的其他插件造成冲突。WordPress 4.4 之前,分类项目排序只支持分类项目自有的字段 id、term_id、name、slug 等。WordPress 4.4 为我们带来了分类项目自定义字段 term_meta 的支持,有了这个数据,我们就可以通过添加分类项目自定义字段来进行排序了。下面是具体的方法。
添加分类项目自定义字段输入表单
首先,我们需要添加一个分类项目自定义字段输入表单,添加后,在编辑分类项目的时候,我们会看到如下图中的分类排序输入字段。根据我们的排序需求,从小到大输入数字就可以了。
/** * 分类项目排序字段 * * @param Term Object $term * @param string $taxonomy */ add_action( 'category_edit_form_fields', 'term_order_field', 10, 2 ); function term_order_field( $term, $taxonomy ) { ?>
调用分类项目时使用自定义字段进行排序
在前段调用分类列表的时候就非常方便了,给 term_terms 函数传入一个包含自定义字段名称、排序方法为 meta_value_num 的数组就可以了。
$args = [ 'meta_key' => '_term_order', 'orderby' => 'meta_value_num', ]; $terms = get_terms( 'category', $args );
如果有需要,我们还可以通过 manage_category_custom_column 函数把排序序号在后台的分类列表中显示出来,可以更直观方便的看到分类项目的排序。