什么是自定义分类法?Category(分类目录)和post_tag(标签)是wordpress内置的两种分类法,其作用是把文章进行栏目分类管理和归类显示。前面分享了wordpress创建自定义文章类型教程,现在给创建的自定义文章类型添加分类栏目功能(即自定义分类法)。
创建自定义分类法
添加分类功能需要使用函数register_taxonomy()
,使用方法和注册自定义文章类型函数类似,区别是多了一个参数用来关联对应的自定义文章类型。
函数结构如下:
1 | register_taxonomy( $taxonomy, $object_type, $args ); |
$taxonomy
字符串型,必需,分类法的名称,用英文;
$object_type
数组或字符串,必需,分类法所对应的文章类型(如前面博客吧创建的自定义文章类型product)
$args
配置参数,可选,跟register_post_type
函数的$args
参数类似,详情请看wordpress创建自定义文章类型教程
本教程可以配置如下常用参数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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
文件即可指定调用。