在WordPress中,taxonomy API允许开发者创建自定义分类(categories)和标签(tags),这些通常被称为“分类法”(taxonomies)。以下是创建自定义分类和标签的基本步骤:
步骤 1: 定义自定义分类类型(Taxonomy)
首先,你需要定义一个新的自定义分类类型。这通常在主题的 functions.php
文件中完成,或者在一个专门的插件中。
function create_custom_taxonomy() {
// 设置标签(label)和其他参数
$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' => __( 'Genres' ),
);
// 参数数组
$args = array(
'hierarchical' => true, // 如果是false,则类似于标签
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'genre' ),
);
// 注册taxonomy
register_taxonomy( 'genre', array( 'post' ), $args );
}
// 添加到WordPress初始化动作中
add_action( 'init', 'create_custom_taxonomy', 0 );
步骤 2: 创建自定义标签(Non-hierarchical Taxonomy)
如果你想要创建一个类似于WordPress内置标签的自定义标签,你可以设置 hierarchical
参数为 false
。
function create_custom_tag() {
// 设置标签(label)和其他参数
$labels = array(
'name' => _x( 'Tags', 'taxonomy general name' ),
'singular_name' => _x( 'Tag', 'taxonomy singular name' ),
'search_items' => __( 'Search Tags' ),
'popular_items' => __( 'Popular Tags' ),
'all_items' => __( 'All Tags' ),
'parent_item' => null,
'parent_item_colon' => null,
'edit_item' => __( 'Edit Tag' ),
'update_item' => __( 'Update Tag' ),
'add_new_item' => __( 'Add New Tag' ),
'new_item_name' => __( 'New Tag Name' ),
'separate_items_with_commas' => __( 'Separate tags with commas' ),
'add_or_remove_items' => __( 'Add or remove tags' ),
'choose_from_most_used' => __( 'Choose from the most used tags' ),
'not_found' => __( 'No tags found.' ),
'menu_name' => __( 'Tags' ),
);
// 参数数组
$args = array(
'hierarchical' => false,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'update_count_callback' => '_update_post_term_count',
'query_var' => true,
'rewrite' => array( 'slug' => 'tag' ),
);
// 注册taxonomy
register_taxonomy( 'tag', array( 'post' ), $args );
}
// 添加到WordPress初始化动作中
add_action( 'init', 'create_custom_tag', 0 );
注意事项:
- 在上述代码中,
'post'
是指定自定义分类法应该与哪种类型的帖子相关联的参数。如果你想要与自定义帖子类型(Custom Post Type)关联,你需要替换为自定义帖子类型的名称。 register_taxonomy()
函数的第一个参数是taxonomy的名称,它应该是一个小写的、仅包含字母数字字符和下划线的字符串。- 你可以通过添加更多参数来自定义taxonomy的行为,例如设置它是否可以添加到菜单中、是否显示在管理列中,以及如何重写URL等。
在将这些代码添加到你的 functions.php
文件或插件后,你需要在WordPress的管理面板中刷新页面,然后你就可以看到新的分类和标签选项了。