尝试在Wordpress自定义用户角色中添加功能来“添加,编辑和删除页面”。
我正在下面创建一个自定义用户角色,即“ sub admin ”。我正在尝试授予对所有“页面”功能的访问权限;但即使识别出以下内容,也无法正常工作。 (无“添加页面,显示编辑当前页面的标签”。
也许还要注意;我正在尝试通过自定义子主题的/function.php
文件进行此操作。该角色在以下代码(即Sub Admin)之后显示在WP仪表板中,但是我无法成功访问页面。
add_role(
'sub_admin',
__( 'Sub Admin' ),
array(
'read' => true,
'edit_posts' => true,
'publish_posts' => true,
'edit_pages' => true,
'edit_others_pages' => true,
'publish_page' => true,
'edit_pages'=>true,
'edit_published_pages'=>true,
'publish_pages'=>true,
'delete_pages'=>true,
'delete_others_pages'=>true,
'delete_published_pages'=>true,
)
);
答案 0 :(得分:0)
请尝试通过以下方法解决您的问题
请确保从add_role
获得结果已经创建了您的角色
$result = add_role(/*your args*/);
if ( null !== $result ) {
echo 'Yay! New role created!';
}
else {
echo 'Oh... the basic_contributor role already exists.';
}
如果还不行。请确保在尝试编辑页面时具有此sub_admin角色
如果问题仍然存在,请了解wordpress开发人员指南通知
在首次调用add_role()之后,该角色及其功能 将存储在数据库中!
顺序调用无济于事:包括更改功能 列表,这可能不是您期望的行为。
也许您需要先remove_role()
,然后再add_role
。
也许您是第一次创建角色而没有某些功能。
另外,请尝试使用init操作添加角色
function wporg_simple_role()
{
remove_role('sub_admin');
// or add_role('sub_admin');
}
add_action('init', 'wporg_simple_role');
也许没有编辑角色,所有管理员功能都是
activate_plugins
delete_others_pages
delete_others_posts
delete_pages
delete_posts
delete_private_pages
delete_private_posts
delete_published_pages
delete_published_posts
edit_dashboard
edit_others_pages
edit_others_posts
edit_pages
edit_posts
edit_private_pages
edit_private_posts
edit_published_pages
edit_published_posts
edit_theme_options
export
import
list_users
manage_categories
manage_links
manage_options
moderate_comments
promote_users
publish_pages
publish_posts
read_private_pages
read_private_posts
read
remove_users
switch_themes
upload_files
customize
delete_site
也许管理栏也取决于manage_options。 您可以通过关闭非管理页面来删除manage_options功能
function change_role() {
global $wp_roles;
if ( ! is_admin() ) {
return;
}
// if not admin page - you could temporary remove manage capabilities from
// sub_admin role
}
add_action('wp', 'change_role');