如何配置WordPress权限:管理员可用双模板,编辑器仅用默认模板?
限制WordPress编辑器角色的页面模板使用权限
你可以通过在主题的functions.php文件中添加自定义函数实现需求,核心是利用WordPress的theme_page_templates过滤器,根据当前用户角色过滤可选的页面模板列表。
具体操作步骤:
- 打开当前激活主题的
functions.php文件(可通过WP后台「外观→主题文件编辑器」找到,或用FTP工具访问服务器wp-content/themes/你的主题名/目录)。 - 将以下代码粘贴到文件末尾:
function restrict_page_templates_by_role($templates) { // 获取当前登录用户对象 $current_user = wp_get_current_user(); // 若用户为编辑器角色,移除高级模板选项 if (in_array('editor', $current_user->roles)) { // 替换为你的高级模板实际文件名,比如template-advanced.php $advanced_template = 'template-advanced.php'; unset($templates[$advanced_template]); } // 管理员角色保留全部模板,其他角色默认使用原有模板列表 return $templates; } add_filter('theme_page_templates', 'restrict_page_templates_by_role');
- 保存文件后即可生效。
关键注意事项:
- 代码中的
template-advanced.php需替换为你实际的「Advanced Template」对应的模板文件名。你可以在主题目录里找到该模板文件,查看其文件名(自定义模板通常会在文件开头有Template Name: Advanced Template的注释,对应文件名就是需要填写的内容)。 - 该代码仅限制「编辑器」角色,管理员不受影响。如果需要限制其他角色,可修改
in_array中的角色参数(比如author、contributor等)。 - 修改
functions.php前建议先备份文件,避免语法错误导致网站异常。
内容的提问来源于stack exchange,提问作者User301276
相关产品推荐
相关产品推荐

