在WordPress中,创建自定义分类法通常涉及到使用 register_taxonomy()
函数。以下是如何使用该函数创建自定义分类法的步骤:
-
确定分类法的基本信息:包括分类法的名称(slug)、复数名称(plural)、单数名称(singular)以及它将应用于哪些自定义内容类型(如 posts、pages 或自定义 post types)。
-
设置分类法的参数:使用一个关联数组来定义分类法的各种属性,如标签、是否支持层级结构、是否允许在管理界面进行编辑等。
-
在主题的
functions.php
文件中添加register_taxonomy()
调用:在适当的钩子(如init
)上注册分类法。
下面是一个具体的例子,演示如何创建一个名为“Genre”的分类法,它适用于名为“book”的自定义内容类型:
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(
'labels' => $labels,
'hierarchical' => true, // 是否层级结构
'public' => true, // 是否公开
'show_ui' => true, // 是否在管理界面显示
'show_admin_column' => true, // 是否在管理界面显示列
'query_var' => true,
'rewrite' => array('slug' => 'genre'),
);
// 注册分类法
register_taxonomy('genre', array('book'), $args);
}
// 在 init 钩子上添加自定义分类法
add_action('init', 'create_genre_taxonomy', 0);
在这个例子中,我们首先定义了一个 $labels
数组,它包含了用于管理界面的标签。然后我们定义了一个 $args
数组,它包含了分类法的各种设置。最后,我们使用 register_taxonomy()
函数注册了一个名为“genre”的分类法,并将其与自定义内容类型“book”关联。
将上述代码添加到你的主题的 functions.php
文件中,然后在WordPress管理界面刷新,你就可以看到新的“Genre”分类法,并且可以开始为你的“book”内容类型添加和管理分类了。