要在WordPress中为自定义文章类型添加分类法,你需要按照以下步骤进行操作:
创建自定义文章类型(如果还没有):
如果你已经有一个自定义文章类型,可以跳过这一步。如果没有,请使用函数 register_post_type()
来创建一个自定义文章类型。例如,你可以创建一个名为 "books" 的自定义文章类型:
function custom_post_type() {
register_post_type('books',
array(
'labels' => array(
'name' => 'Books',
'singular_name' => 'Book'
),
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'thumbnail', 'customfields'),
)
);
}
add_action('init', 'custom_post_type');
创建自定义分类法:
使用函数 register_taxonomy()
来创建自定义分类法。例如,你可以创建一个名为 "genre" 的分类法:
function custom_taxonomy() {
register_taxonomy(
'genre',
'books', // 这里使用你的自定义文章类型的名称
array(
'label' => 'Genre',
'rewrite' => array('slug' => 'genre'),
'hierarchical' => true,
)
);
}
add_action('init', 'custom_taxonomy');
编辑自定义文章类型:
现在,你可以在WordPress后台编辑你的自定义文章类型 "books",并为每篇文章选择一个或多个 "Genre"。
显示分类法在文章编辑页面(可选):
如果你想在文章编辑页面显示分类法,可以使用以下代码:
function add_custom_taxonomy() {
add_meta_box(
'custom_taxonomy',
'Genre',
'custom_taxonomy_meta_box',
'books', // 这里使用你的自定义文章类型的名称
'side',
'default'
);
}
function custom_taxonomy_meta_box($post) {
$taxonomy = 'genre';
$terms = get_terms($taxonomy);
$post_terms = wp_get_post_terms($post>ID, $taxonomy);
if ($terms) {
foreach ($terms as $term) {
echo '
';
}
}
}
function save_custom_taxonomy($post_id) {
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
if ($parent_id = wp_is_post_revision($post_id)) {
$post_id = $parent_id;
}
$post_terms = isset($_POST['post_terms']) ? $_POST['post_terms'] : array();
wp_set_post_terms($post_id, $post_terms, 'genre');
}
add_action('add_meta_boxes', 'add_custom_taxonomy');
add_action('save_post', 'save_custom_taxonomy');
这些步骤将帮助你为自定义文章类型添加分类法,并在文章编辑页面中进行分类选择。确保将代码添加到你的主题的 functions.php
文件中,或者使用自定义插件来实现这些功能。