在WordPress中,taxonomy API允许您创建自定义分类法(taxonomy),这样您就可以更好地组织和分类您的帖子(posts)、页面(pages)或其他自定义内容类型(custom post types)。以下是创建自定义分类法的基本步骤:
步骤 1: 定义您的自定义分类法
首先,您需要在您的主题的 functions.php
文件中或在一个单独的插件文件中使用 register_taxonomy()
函数来定义您的自定义分类法。
以下是一个基本的例子,它创建了一个名为 "Genre" 的分类法,用于自定义内容类型 "book":
function create_custom_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' => __( 'Genres' ),
);
$args = array(
'hierarchical' => true, // 如果是层级结构,设置为true,类似于分类目录
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'genre' ),
);
register_taxonomy( 'genre', array( 'book' ), $args );
}
add_action( 'init', 'create_custom_taxonomy', 0 );
步骤 2: 创建或修改自定义内容类型
在上面的例子中,我们假设已经有一个名为 "book" 的自定义内容类型。如果还没有,您需要使用 register_post_type()
函数来创建它:
function create_book_post_type() {
register_post_type( 'book',
array(
'labels' => array(
'name' => __( 'Books' ),
'singular_name' => __( 'Book' )
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'books'),
'taxonomies' => array( 'genre' ),
// 其他参数
)
);
}
add_action( 'init', 'create_book_post_type' );
步骤 3: 激活并测试
保存您的 functions.php
文件或插件文件,然后访问您的WordPress管理面板。您应该能够在“文章”菜单下看到一个“书籍”部分,在“书籍”部分下看到一个“分类”部分,用于管理您的自定义分类法“Genre”。
注意事项
- 在定义分类法时,确保您的
$labels
和$args
数组正确无误。 - 如果您更改了分类法的
rewrite
规则,您可能需要访问设置 > 永久链接并点击“保存更改”来刷新WordPress的URL结构。 - 在生产环境中,始终在独立的插件中进行这些更改,而不是直接在主题的
functions.php
文件中,以避免在主题更新时丢失您的自定义代码。
通过遵循这些步骤,您可以在WordPress中创建和使用自定义分类法。