什么是自定义分类法?Category(分类目录)和post_tag(标签)是wordpress内置的两种分类法,其作用是把文章进行栏目分类管理和归类显示。前面分享了wordpress创建自定义文章类型教程,现在给创建的自定义文章类型添加分类栏目功能(即自定义分类法)。
创建自定义分类法
添加分类功能需要使用函数register_taxonomy(),使用方法和注册自定义文章类型函数类似,区别是多了一个参数用来关联对应的自定义文章类型。
函数结构如下:
register_taxonomy( $taxonomy, $object_type, $args );
$taxonomy 字符串型,必需,分类法的名称,用英文;
$object_type数组或字符串,必需,分类法所对应的文章类型(如前面博客吧创建的自定义文章类型product)
$args配置参数,可选,跟register_post_type函数的$args参数类似,详情请看wordpress创建自定义文章类型教程
本教程可以配置如下常用参数:
function my_taxonomies_product() {
$labels = array(
'name' => _x( '产品分类', 'taxonomy 名称' ),
'singular_name' => _x( '产品分类', 'taxonomy 单数名称' ),
'search_items' => __( '搜索产品分类' ),
'all_items' => __( '所有产品分类' ),
'parent_item' => __( '该产品分类的上级分类' ),
'parent_item_colon' => __( '该产品分类的上级分类:' ),
'edit_item' => __( '编辑产品分类' ),
'update_item' => __( '更新产品分类' ),
'add_new_item' => __( '添加新的产品分类' ),
'new_item_name' => __( '新产品分类' ),
'menu_name' => __( '产品分类' ),
);
$args = array(
'labels' => $labels,
'public' => true,
'show_in_nav_menus' => true,
'hierarchical' => true, //控制自定义分类法的格式,如果值是false,则将分类(category)转化成标签(tags)
'show_ui' => true,
'query_var' => true,
'rewrite' => true,
'show_admin_column' => true
);
register_taxonomy( 'products', 'product', $args );//products是该自定义分类法的名称;product是对应的自定义文章类型名称
}
add_action( 'init', 'my_taxonomies_product', 0 );
把上面的代码添加到主题的functions.php文件,后台的“产品”自定义文章类型下面就会出现“产品分类”,然后就可以按正常分类目录一样创建分类,发布产品的时候,右侧就可以选择产品分类。
调用自定义分类法文章
自定义分类法的分类列表页面模板文件是taxonomy.php或taxonomy-{taxonomy_slug}.php,taxonomy.php是所有自定义分类法默认调用的模板文件,taxonomy-{taxonomy_slug}.php则是指定自定义分类法调用的模板文件,比如本教程中创建的自定义分类法products,使用taxonomy-products.php文件即可指定调用。

