创建页面/新页面的用户功能
-
16-10-2019 - |
题
我今天第一次从事角色和能力API工作,并利用优秀 成员插件. 。修补了一段时间后,我注意到“编辑页面”功能有两件事:
- 允许用户创建一个新页面
- 允许用户编辑现有页面
我试图将此能力分为两者。我希望我的用户:
- 无法创建任何新页面
- 允许用户编辑现有页面
我希望为我的主题编写一些代码,以使这种情况发生。我可以很容易地创建一个新的功能。然后,挑战是让WordPress对此做出相应的响应。
任何想法都将不胜感激。
解决方案
是的,这确实是一个问题。计划了专用的“ create_posts”功能:
其他提示
嗨,我已经研究了一段时间,想出了以下黑客。在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