WordPress自定义文章类型如何设置独立分类而非共享默认分类
解决方案:为自定义文章类型创建独立分类法
一、先给Composers创建专属分类法
首先得为Composers自定义文章类型创建独立的分类法,比如命名为composer_category。把下面的代码加到主题的functions.php或者你自己的自定义插件里:
function register_composer_taxonomy() { $args = array( 'labels' => array( 'name' => '作曲家分类', '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, // 和默认分类一样支持父子层级,不需要的话改成false 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'composer-category' ) ); // 第一个参数是分类法唯一标识,第二个是绑定的自定义文章类型slug register_taxonomy( 'composer_category', 'composers', $args ); } add_action( 'init', 'register_composer_taxonomy' );
二、修改Composers文章类型的注册代码
找到你注册composers自定义文章类型的代码,把原来taxonomies数组里的'category'替换成刚创建的'composer_category':
原来的代码片段:
function register_composers_post_type() { $args = array( // 其他配置参数... 'taxonomies' => array( 'category' ), // 这里是之前共享默认分类的设置 // 其他配置参数... ); register_post_type( 'composers', $args ); } add_action( 'init', 'register_composers_post_type' );
修改后的代码片段:
function register_composers_post_type() { $args = array( // 其他配置参数... 'taxonomies' => array( 'composer_category' ), // 换成专属分类法 // 其他配置参数... ); register_post_type( 'composers', $args ); } add_action( 'init', 'register_composers_post_type' );
这样Composers就会使用独立的分类列表,和默认博客文章的分类彻底分开了。
三、未来新增自定义文章类型的通用套路
以后再加新的自定义文章类型(比如Painters),只需要重复两步:
- 给新类型创建对应的专属分类法,把
register_taxonomy的第二个参数改成新文章类型的slug就行:
function register_painter_taxonomy() { $args = array( 'labels' => array( 'name' => '画家分类', 'singular_name' => '画家分类', // 其他标签可以参考前面的例子按需修改 ), 'hierarchical' => true, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'painter-category' ) ); register_taxonomy( 'painter_category', 'painters', $args ); } add_action( 'init', 'register_painter_taxonomy' );
- 注册新文章类型时,把
taxonomies设置为对应的分类法slug即可。
额外注意点
- 之前给Composers加过的默认分类内容不会自动迁移到新分类法里,需要手动整理或者写个小脚本迁移。
- 修改完代码后,记得去后台「设置-固定链接」页面点一下「保存更改」,刷新WordPress的重写规则,避免分类页面出现404错误。
内容的提问来源于stack exchange,提问作者RobPL
相关产品推荐
相关产品推荐

