Wordpress自定义角色访问使用分类法

时间:2016-02-18 11:11:32

标签: php wordpress

使用自定义帖子类型和分类法开发Wordpress网站

创建了一个角色,此用户只能在1个自定义帖子类型上修改自己的帖子(而不是在任何其他帖子上)。

这很好用,可以通过下面的代码实现,问题是这个用户可以看到与这个帖子类型相关的分类法,

用户无法将这些分类法添加到自定义帖子中(勾选框显示为灰色)

我知道将修改后的帖子更改为true会允许这样做但不能这样做,因为它会让用户访问网站上的其他帖子类型

感谢任何帮助提示,谢谢

add_role('psp_project_manager',
        'Project Manager',
        array(
            'read'         => true,  // true allows this capability
            'edit_posts' => false,
            'delete_posts' => false,
            'publish_posts' => false,
            'upload_files' => true,
        )
    );
}

function psp_add_role_caps() {

    // Add the roles you'd like to administer the custom post types

    $roles = array('psp_project_manager');

    // Loop through each role and assign capabilities
    foreach($roles as $the_role) {

         if ( get_role( $the_role ) ) {

             $role = get_role($the_role);

             $role->add_cap( 'read' );
             $role->add_cap( 'read_psp_project');
             $role->add_cap( 'read_private_psp_projects' );
             //$role->remove_cap( 'edit_others_psp_project' ); 
             //$role->remove_cap( 'edit_others_psp_projects' ); 
             $role->add_cap( 'edit_published_psp_project' );
             $role->add_cap( 'edit_published_psp_projects'  );
             $role->add_cap( 'edit_psp_project' );
             $role->add_cap( 'edit_psp_projects' );
             $role->add_cap( 'edit_private_psp_project' );
             $role->add_cap( 'edit_private_psp_projects'  );

             //$role->add_cap( 'edit_others_psp_projects' );
             //$role->add_cap( 'edit_published_psp_projects' );
             $role->add_cap( 'publish_psp_project' );
             $role->add_cap( 'publish_psp_projects' );
             $role->remove_cap( 'delete_others_psp_projects' );
             //$role->add_cap( 'delete_private_psp_projects' );
             $role->add_cap( 'delete_published_psp_projects' );
        }
    }
}

0 个答案:

没有答案