You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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),只需要重复两步:

  1. 给新类型创建对应的专属分类法,把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' );
  1. 注册新文章类型时,把taxonomies设置为对应的分类法slug即可。

额外注意点

  • 之前给Composers加过的默认分类内容不会自动迁移到新分类法里,需要手动整理或者写个小脚本迁移。
  • 修改完代码后,记得去后台「设置-固定链接」页面点一下「保存更改」,刷新WordPress的重写规则,避免分类页面出现404错误。

内容的提问来源于stack exchange,提问作者RobPL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:25:07