在WordPress中创建和使用自定义分类法(Taxonomy)是一种强大的内容组织方式,可以帮助你更好地管理和浏览网站内容。以下是创建和使用自定义分类法的步骤:
1. 创建自定义分类法
使用functions.php文件
打开你的WordPress主题的functions.php文件。这个文件通常位于你的主题文件夹中,你可以通过WordPress后台进入“外观” > “编辑主题”来编辑它。
在functions.php文件中,使用register_taxonomy()函数来创建自定义分类法。这个函数接收三个参数:分类法的名称、分类法用于哪些文章类型以及一些其他参数(可选)。
function create_custom_taxonomy() {
register_taxonomy(
'my_custom_taxonomy', // 分类法的名称
'post', // 分类法用于的文章类型(这里以post为例)
array(
'label' => '我的自定义分类', // 分类法的前端显示标签
'labels' => array(
'name' => _x('我的自定义分类', 'taxonomy general name'),
'singular_name' => _x('我的自定义分类项', 'taxonomy singular name'),
'search_items' => __('搜索我的自定义分类项'),
'all_items' => __('所有我的自定义分类项'),
'parent_item' => __('父级我的自定义分类项'),
'parent_item_colon' => __('父级我的自定义分类项:'),
'edit_item' => __('编辑我的自定义分类项'),
'update_item' => __('更新我的自定义分类项'),
'add_new_item' => __('添加新的我的自定义分类项'),
'new_item_name' => __('新的我的自定义分类项名称'),
'menu_name' => __('我的自定义分类'),
),
'hierarchical' => true, // 是否为层次结构(如分类)
'show_ui' => true, // 是否在后台显示UI
'show_admin_column' => true, // 是否在文章列表显示该分类法列
'query_var' => true, // 是否允许通过查询字符串访问该分类法
'rewrite' => array( 'slug' => 'my-custom-taxonomy' ), // URL重写规则
)
);
}
add_action( 'init', 'create_custom_taxonomy' );
2. 使用自定义分类法
分配分类到文章
当你创建并激活了自定义分类法后,你可以在写文章或编辑文章时看到一个新的分类法字段。
在这个字段中,你可以为你的文章选择或添加自定义分类。
在模板中显示自定义分类
在你的WordPress模板文件中(如single.php、archive.php等),你可以使用WordPress的模板标签来显示文章的自定义分类。
<?php
$terms = get_the_terms( $post->ID, 'my_custom_taxonomy' );
if ( $terms && ! is_wp_error( $terms ) ) :
foreach ( $terms as $term ) {
echo $term->name . ' ';
}
endif;
?>
这段代码会获取当前文章的自定义分类(名为my_custom_taxonomy)并显示它们的名称。
3. 插件扩展
你还可以使用插件来进一步扩展自定义分类法的功能,例如添加筛选器、改变分类法的显示方式等。你可以通过WordPress的插件目录搜索并安装适合你需求的插件。
请注意,在进行任何更改之前,请务必备份你的WordPress网站以防万一。
4.创建颜色分类法
在WordPress中,要在后台多添加指定的分类栏,你可以使用register_taxonomy
函数来注册自定义分类栏,并使用add_action
和add_filter
来确保在后台正确显示。以下是一个示例代码,演示如何添加一个名为“Color”的自定义分类栏:
<?php
// 确保WordPress函数环境正确加载
defined( 'ABSPATH' ) || exit;
// 注册自定义分类栏
function custom_taxonomies_color() {
$labels = array(
'name' => _x( 'Colors', 'taxonomy general name' ),
'singular_name' => _x( 'Color', 'taxonomy singular name' ),
'search_items' => __( 'Search Colors' ),
'all_items' => __( 'All Colors' ),
'parent_item' => __( 'Parent Color' ),
'parent_item_colon' => __( 'Parent Color:' ),
'edit_item' => __( 'Edit Color' ),
'update_item' => __( 'Update Color' ),
'add_new_item' => __( 'Add New Color' ),
'new_item_name' => __( 'New Color Name' ),
'menu_name' => __( 'Colors' ),
);
$args = array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'color' ),
);
register_taxonomy( 'color', array( 'post' ), $args );
}
// 添加自定义分类栏的钩子
add_action( 'init', 'custom_taxonomies_color', 0 );
?>
将上述代码添加到你的WordPress主题的functions.php文件中,并激活你的主题,就可以在WordPress后台的“文章”部分看到一个名为“Colors”的新分类栏。这个分类栏可以被用来为文章打上颜色标签。