我今天第一次从事角色和能力API工作,并利用优秀 成员插件. 。修补了一段时间后,我注意到“编辑页面”功能有两件事:

  1. 允许用户创建一个新页面
  2. 允许用户编辑现有页面

我试图将此能力分为两者。我希望我的用户:

  1. 无法创建任何新页面
  2. 允许用户编辑现有页面

我希望为我的主题编写一些代码,以使这种情况发生。我可以很容易地创建一个新的功能。然后,挑战是让WordPress对此做出相应的响应。

任何想法都将不胜感激。

有帮助吗?

解决方案

是的,这确实是一个问题。计划了专用的“ create_posts”功能:

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

其他提示

嗨,我已经研究了一段时间,想出了以下黑客。在wp-admin/new_post.php中,添加以下内容,在WP_DIE行之后:

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/菜单中,添加一个条件,用于在管理员中显示添加页面子菜单。该行通常在那里,但不包括在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

许可以下: CC-BY-SA归因
scroll top