在 Wordpress 中禁用自定义 Post 类型的类别选项
Disable the Category option for Custom Post Type in Wordpress
我正在开发一个网站,用户可以在该网站上使用自定义 post 类型将视频添加到滑块。实际上,存在三个不同的滑块,每个滑块中的视频由分配给它们的类别决定。这是注册 cpt 的代码:
public function videos() {
register_post_type( 'videos',
[
'labels' => [
'name' => 'Videos',
'singular_name' => 'Videos'
],
'public' => true,
'show_in_rest' => true,
'taxonomies' => [ 'category' ],
'rewrite' => [ 'slug' => 'videos' ],
'supports' => [ 'title', 'custom-fields', 'editor', 'excerpt', 'thumbnail' ],
'menu_icon' => 'dashicons-format-video'
]
);
}
}
我已经通过 WP Admin 添加了三个不同的类别,我想阻止用户使用或创建除我创建的类别之外的任何其他类别,因此为了做到这一点,我会就像管理栏内 CPT 菜单的“类别”选项卡不存在一样,我希望自定义 post 元数据框中的“+ 添加新类别”link 也一样。底线是,除了将现有的类别分配给新的 post 之外,用户不应有任何业务处理类别。
这似乎是一个非常简单和常见的修复,所以我很惊讶,因为到目前为止我还没有找到有效的解决方案。 This 非常接近我要查找的内容,但由于我没有添加 register_taxonomy_for_object_type( 'category', 'custom_type' );
行,所以我没有任何要删除的内容。我对这一切感到非常困惑,如有任何帮助,我们将不胜感激。
'taxonomies' => [ 'category' ]
是您调用 register_taxonomy_for_object_type( 'category', 'custom_type' );
的方式,但是通过删除它,您从 post 类型中删除了分类法,而不仅仅是菜单。
我建议您为您的视频注册自定义分类并为其分配管理权限。
正在注册分类法:https://developer.wordpress.org/reference/functions/register_taxonomy/
capabilities
选项将允许您只允许管理员更改它们,因此您的 capabilties
看起来像这样。
'capabilities' => array(
'manage_terms' => 'update_core',
'edit_terms' => 'update_core',
'delete_terms' => 'update_core',
),
最后,您将拥有一个 moderators/editors 可以管理的自定义 post 类型和一个附加到该 post 类型的自定义分类法,只有管理员可以更改但 mods/editors 可以赋值。
我正在开发一个网站,用户可以在该网站上使用自定义 post 类型将视频添加到滑块。实际上,存在三个不同的滑块,每个滑块中的视频由分配给它们的类别决定。这是注册 cpt 的代码:
public function videos() {
register_post_type( 'videos',
[
'labels' => [
'name' => 'Videos',
'singular_name' => 'Videos'
],
'public' => true,
'show_in_rest' => true,
'taxonomies' => [ 'category' ],
'rewrite' => [ 'slug' => 'videos' ],
'supports' => [ 'title', 'custom-fields', 'editor', 'excerpt', 'thumbnail' ],
'menu_icon' => 'dashicons-format-video'
]
);
}
}
我已经通过 WP Admin 添加了三个不同的类别,我想阻止用户使用或创建除我创建的类别之外的任何其他类别,因此为了做到这一点,我会就像管理栏内 CPT 菜单的“类别”选项卡不存在一样,我希望自定义 post 元数据框中的“+ 添加新类别”link 也一样。底线是,除了将现有的类别分配给新的 post 之外,用户不应有任何业务处理类别。
这似乎是一个非常简单和常见的修复,所以我很惊讶,因为到目前为止我还没有找到有效的解决方案。 This 非常接近我要查找的内容,但由于我没有添加 register_taxonomy_for_object_type( 'category', 'custom_type' );
行,所以我没有任何要删除的内容。我对这一切感到非常困惑,如有任何帮助,我们将不胜感激。
'taxonomies' => [ 'category' ]
是您调用 register_taxonomy_for_object_type( 'category', 'custom_type' );
的方式,但是通过删除它,您从 post 类型中删除了分类法,而不仅仅是菜单。
我建议您为您的视频注册自定义分类并为其分配管理权限。
正在注册分类法:https://developer.wordpress.org/reference/functions/register_taxonomy/
capabilities
选项将允许您只允许管理员更改它们,因此您的 capabilties
看起来像这样。
'capabilities' => array(
'manage_terms' => 'update_core',
'edit_terms' => 'update_core',
'delete_terms' => 'update_core',
),
最后,您将拥有一个 moderators/editors 可以管理的自定义 post 类型和一个附加到该 post 类型的自定义分类法,只有管理员可以更改但 mods/editors 可以赋值。