创建页面/新页面的用户能力

时间:2011-04-13 作者:Scott

我今天第一次使用角色和功能API,并利用了优秀的Members plugin. 经过一段时间的修补,我注意到“编辑页面”功能可以做两件事:

允许用户创建新页面允许用户编辑现有页面我正在尝试将此功能一分为二。我希望我的用户:

无法创建任何新页面允许用户编辑现有页面我想为我的主题编写一些代码来实现这一点。我可以很容易地创建新功能。接下来的挑战是让WordPress做出相应的响应。

如有任何想法,将不胜感激。

2 个回复
最合适的回答,由SO网友:scribu 整理而成

是的,这确实是个问题。计划专门的“创建职位”能力:

http://core.trac.wordpress.org/ticket/16714

SO网友:Ackab

嗨,我已经研究这个有一段时间了,想出了下面的黑客。在wp admin/new\\u post中。php在wp_模具线之后添加以下内容:

wp_die( __(\'Invalid post type\') );

if ( !current_user_can( \'manage_options\' ) and $post_type == \'page\') {
    echo "To create new pages please ask site admin";
    exit;
} //if user is not admin, a warning is issued and script terminated
然后在wp admin/menu中,添加一个条件,用于在admin中显示add page子菜单。该行通常存在,但不包括在if语句中

if ( current_user_can( \'manage_options\' )) { //if user is admin, show submenu for creating new pages, else no luck
   $submenu[\'edit.php?post_type=page\'][10] = array( _x(\'Add New\', \'page\'), get_post_type_object( \'page\' )->cap->create_posts, \'post-new.php?post_type=page\' );
}
我仍然需要弄清楚如何删除编辑页面中的添加新按钮,但是拥有发布权限的用户现在可以编辑现有页面,但不能创建新页面。如果他们按下“新建页面”按钮,则会收到警告,无法继续。岗位不受影响。同样的代码也可以很容易地应用于防止创建新帖子,只需很少的编辑。

希望这有帮助-Ackab

结束