问题描述
如何删除此自定义帖子类型不显示在非管理员用户的信息中心?
/* Add Websites Custom Post Type */
add_action( 'init', 'create_website_type' );
function create_website_type() {
register_post_type( 'website',
array(
'labels' => array(
'name' => __( 'Websites' ),
'singular_name' => __( 'Website' ),
'add_new' => __( 'Add New Website' ),
'add_new_item' => __( 'Add New Website' ),
'edit' => __( 'Edit Website' ),
'edit_item' => __( 'Edit Website' ),
'new_item' => __( 'Add New Website' ),
'view' => __( 'View Website' ),
'view_item' => __( 'View Website' ),
'search_items' => __( 'Search Websites' ),
'not_found' => __( 'No Websites Found' ),
'not_found_in_trash' => __( 'No Websites found in Trash' ),
),
'description' => __('Websites to be shown in Resources section.'),
'public' => true,
'show_ui' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'menu_position' => 20,
'supports' => array('title', 'editor'),
'can_export' => true
)
);
remove_post_type_support('website','editor');
}
最佳解决方案
register_post_type()
在参数中接受参数 capabilities
。有关可能的值,请参阅 get_post_type_capabilities()
。从评论:
By default, seven keys are accepted as part of the capabilities array:
edit_post
,read_post
, anddelete_post
are meta capabilities, which are then generally mapped to corresponding primitive capabilities depending on the context, which would be the post being edited/read/deleted and the user or role being checked. Thus these capabilities would generally not be granted directly to users or roles.
edit_posts
– Controls whether objects of this post type can be edited.edit_others_posts
– Controls whether objects of this type owned by other users can be edited. If the post type does not support an author, then this will behave likeedit_posts
.publish_posts
– Controls publishing objects of this post type.read_private_posts
– Controls whether private objects can be read.These four primitive capabilities are checked in core in various locations. There are also seven other primitive capabilities which are not referenced directly in core, except in
map_meta_cap()
, which takes the three aforementioned meta capabilities and translates them into one or more primitive capabilities that must then be checked against the user or role, depending on the context.
read
– Controls whether objects of this post type can be read.delete_posts
– Controls whether objects of this post type can be deleted.delete_private_posts
– Controls whether private objects can be deleted.delete_published_posts
– Controls whether published objects can be deleted.delete_others_posts
– Controls whether objects owned by other users can be can be deleted. If the post type does not support an author, then this will behave likedelete_posts
.edit_private_posts
– Controls whether private objects can be edited.edit_published_posts
– Controls whether published objects can be edited.These additional capabilities are only used in
map_meta_cap()
. Thus, they are only assigned by default if the post type is registered with the'map_meta_cap'
argument set totrue
(default isfalse
).
在你的注册参数中添加:
'capabilities' => array(
'edit_post' => 'update_core',
'read_post' => 'update_core',
'delete_post' => 'update_core',
'edit_posts' => 'update_core',
'edit_others_posts' => 'update_core',
'delete_posts' => 'update_core',
'publish_posts' => 'update_core',
'read_private_posts' => 'update_core'
),
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。