在WordPress中,使用register_taxonomy()
函数创建自定义分类(也称为分类法)是一个相对直接的过程。以下是如何在插件中使用register_taxonomy()
的步骤:
-
设置钩子:首先,你需要设置一个钩子(hook)来注册你的自定义分类。通常,这会在
init
动作发生时完成。 -
定义参数:
register_taxonomy()
函数接受多个参数,包括分类法的名称、对象类型(例如帖子或链接)以及一组选项。
下面是一个示例代码,展示了如何在WordPress插件中创建一个名为“Genre”的自定义分类,并将其与“book”(假设这是你的自定义帖子类型)关联:
<?php
/*
Plugin Name: Custom Taxonomy Example
Description: An example plugin to demonstrate how to create a custom taxonomy.
Version: 1.0
Author: Your Name
*/
// 当WordPress初始化时注册自定义分类
add_action( 'init', 'create_genre_taxonomy', 0 );
// 创建自定义分类的函数
function create_genre_taxonomy() {
// 设置标签,这里用于设置复数和单数名称
$labels = array(
'name' => _x( 'Genres', 'taxonomy general name' ),
'singular_name' => _x( 'Genre', 'taxonomy singular name' ),
'search_items' => __( 'Search Genres' ),
'all_items' => __( 'All Genres' ),
'parent_item' => __( 'Parent Genre' ),
'parent_item_colon' => __( 'Parent Genre:' ),
'edit_item' => __( 'Edit Genre' ),
'update_item' => __( 'Update Genre' ),
'add_new_item' => __( 'Add New Genre' ),
'new_item_name' => __( 'New Genre Name' ),
'menu_name' => __( 'Genre' ),
);
// 设置参数
$args = array(
'hierarchical' => true, // 是否允许层级关系,类似于分类目录
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'genre' ),
);
// 注册自定义分类
register_taxonomy( 'genre', array( 'book' ), $args );
}
?>
在上面的代码中,我们定义了一个名为create_genre_taxonomy
的函数,并在init
动作上使用add_action
来注册它。这个函数设置了自定义分类的标签和参数,并使用register_taxonomy
函数来创建分类。
请注意以下几点:
array( 'book' )
:这里指定了自定义分类将应用于哪个或哪些对象类型。在这个例子中,我们假设有一个名为“book”的自定义帖子类型。如果你想让分类应用于多个帖子类型,只需在数组中添加它们。rewrite
参数:这个参数用于设置分类在URL中的结构。'slug' => 'genre'
表示URL中将使用“genre”作为路径的一部分。
在创建插件并将上述代码放入插件文件后,激活插件,你应该能够在WordPress管理后台看到新的“Genre”分类,并且可以为你的“book”帖子类型添加和管理分类。