Wordpress remove_cap()无效

时间:2014-05-02 12:08:59

标签: php wordpress

我使用的WP主题的自定义帖子类型为“Vehicle”,自定义用户角色为“Seller”。

我正在尝试删除卖方角色用户的发布工具功能,只允许他们“提交审核”** - 我一直在阅读这篇文章,我尝试了一个名为'WP Role的插件编辑'但这不起作用。

我也尝试将此代码放入我的函数文件中,但这仍然没有任何效果。

$role = get_role('seller'); 
$role->remove_cap('publish_posts', false);

有没有办法解决这个问题,我尝试过各种网站的几个不同的代码片段,但似乎都没有。非常感谢您的意见。

执行var_dump($ role)时的信息

object(WP_Role)#464 (2) { 
    ["name"]= string(6) "seller" 
        ["capabilities"]= array(20) { 
        ["read"]= bool(true)
        ["upload_files"]= bool(true) 
        ["assign_seek_terms"]= bool(true)
        ["create_product"]= bool(true) 
        ["edit_post"]= bool(true)
        ["edit_gallery_group_post"]= bool(true)
        ["edit_download_group_post"]= bool(true) 
        ["edit_seek_post"] = bool(false) 
        ["read_seek_post"]= bool(false) 
        ["delete_seek_post"] = bool(false) 
        ["edit_seek_posts"] = bool(true)
        ["edit_others_seek_posts"] = bool(false) 
        ["publish_seek_posts"] = bool(true) 
        ["read_private_seek_posts"] = bool(false)
        ["delete_seek_posts"] = bool(true) 
        ["delete_private_seek_posts"] = bool(false) 
        ["delete_published_seek_posts"] = bool(true)
        ["delete_others_seek_posts"] = bool(false) 
        ["edit_private_seek_posts"]= bool(false)
        ["edit_published_seek_posts"]= bool(true) 
    } 
}

2 个答案:

答案 0 :(得分:1)

编辑:

查看您的var_dump数据,'卖家'没有" publish_posts'开始,因此无法删除!

答案 1 :(得分:0)

测试一下:

global $wp_roles;
$wp_roles->remove_cap( 'seller', 'publish_posts' );