Wordpress自定义帖子类型角色
问题描述:
我已经在wordpress和admin中创建了一个自定义帖子类型,我可以用这个做任何事情。但是我想创建一个只能添加,编辑和删除这个自定义文章类型的东西的“客户端”角色,所以他不可以发布一个普通文章,编辑它或删除它,并且与页面一样。Wordpress自定义帖子类型角色
这是我的我的自定义后类型的参数
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'publicly_queryable' => true,
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => false,
'supports' => array(
'title',
'thumbnail'
),
'capabilities' => array(
'edit_post' => 'edit_portfolio',
'edit_posts' => 'edit_portfolios',
'edit_others_posts' => 'edit_others_portfolios',
'publish_posts' => 'publish_portfolios',
'read_post' => 'read_portfolios',
'read_private_posts' => 'read_private_portfolios',
'delete_post' => 'delete_portfolio',
),
'map_meta_cap' => true,
'menu_icon' => 'dashicons-screenoptions',
'menu_position' => 5,
'show_ui' => true,
'exclude_from_search' => false
);
而这些是我所创建
add_role("client", "Client", array(
'read' => true, // allows this capability, dashboard
'upload_files'=>true, //allows user to upload files
'edit_posts' => false, // denies user to edit their own posts
'edit_pages' => false, // denies user to edit pages
'edit_others_posts' => false, // denies user to edit others posts not just their own
'create_posts' => false, // denies user to create new posts
'manage_categories' => false, // denies user to manage post categories
'publish_posts' => false, // denies the user to publish
'edit_themes' => false, // false denies this capability. User can’t edit your theme
'install_plugins' => false, // User cant add new plugins
'update_plugin' => false, // User can’t update any plugins
'update_core' => false, // user cant perform core updates
'edit_portfolios' => true, // allows editing of the user’s own portfolio
'edit_others_portfolios' => true, // allows the user to edit everyone else’s portfolio
'delete_portfolios' => true, // allows to delete portfolio written by that user
'delete_others_portfolios' => true, // allows to delete portfolio written by other users
'publish_portfolios' => true // allows the user to publish portfolio, otherwise posts stays in draft mode
));
作用
现在的效果是,他们可以看到仪表盘的职位,但不改变或点击它,不能删除,当他们发布消息时,他们最终出现在错误屏幕上,他们不应该看到这一点。
在此先感谢
答
我找到了答案,所以对于也有这个问题的人来说。 您必须将此功能置于真实状态
'delete_posts'=>'delete_portfolios',
'delete_others_posts'=>'delete_others_portfolios',
'delete_published_posts'=>'delete_published_portfolios',
'delete_private_posts'=>'delete_private_portfolios'
答
我从来没有使用编程方式完成这一点,但如果你是使用插件不介意的话,我已经使用这个https://wordpress.org/plugins/user-roles-and-capabilities/一个在几个网站和它的快速和容易。
我知道有些人厌恶插件,但我没有任何问题。
感谢您的快速回复。 当我看着一个插件,我认为他们有这样做的正确权利。 所以我想我需要更多的代码。 – Arne