前面,我们注册了wordpress自定义文章类型——网站后台的“商城”模块,这样,我们就可以在商城里发表产品了。但是一个商城不可能只有一个类型的产品,可能有很多种类型的产品,如:服饰类、电子类、饮食类……等等。这时,我们就要对它们进行分类。所以,在注册好了wordpress自定义文章类型后,我们还要添加分类功能。
添加分类功能我们就需要使用到register_taxonomy()函数 ,使用方法跟注册 Post Type() 函数类似,只不过多了一个参数用来指定对应的 Post Type :
register_taxonomy( $taxonomy, $object_type, $args );
参数解说:
$taxonomy 字符串型,必需,分类法的名称,用英文哦
$object_type 数组或字符串,必需,分类法所对应的文章类型
$args–可选,配置参数
参数使用跟 register_post_type()函数类似,这里就不多说。下面就是添加分类代码:
- function my_taxonomies_shop() {
- $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,
- ‘hierarchical’ => true,
- );
- register_taxonomy( ‘shop’, ‘book’, $args );
- }
- add_action( ‘init’, ‘my_taxonomies_shop’, 0 );
这样,wordpress后台的商城模块菜单里就会多出一个“商城分类”菜单,如下图:
通过上面的步骤,我们添加了后台的自定义文章类型的分类,但是在前台还不能正常显示。这时,我们要对自定义文章类型添加模板。根据“WordPress 的模板调用规则”,只需创建 category-[post_type].php 和 single-[post_type].php 就可以实现该 Post Type 的列表自定义和文章自定义。这时,当用户访问 Post Type文章或分类时,WordPress 会优先调用这些模板来渲染。
我们前面注册的wordpress自定义文章分类名为 book ,我们先复制一个主题中的single.php和category.php文件,然后将复制的文件名改成single-book.php和category-book.php就可以了。