如何让WordPress管理员在页面编辑页的作者下拉框显示所有用户
解决方案
你的代码未生效的原因是缺少当前用户角色判断,且错误地固定了只显示Author角色,不符合管理员显示所有用户的需求。以下是修正后的代码:
add_filter( 'wp_dropdown_users_args', 'custom_page_author_dropdown', 10, 2 ); function custom_page_author_dropdown( $query_args, $r ) { // 获取当前后台屏幕对象 $screen = get_current_screen(); // 仅在页面(page)编辑页面执行逻辑 if ( $screen && $screen->post_type === 'page' ) { // 判断当前登录用户是否为管理员 if ( current_user_can( 'administrator' ) ) { // 移除默认筛选条件,显示所有用户 unset( $query_args['who'] ); unset( $query_args['role'] ); } else { // 非管理员保持默认:仅显示编辑(Editor)角色用户 $query_args['role'] = 'editor'; } } return $query_args; }
代码说明
- 用
current_user_can('administrator')判断用户权限,这是WordPress推荐的方式,比直接检查角色更可靠。 - 管理员登录时,移除
who和role参数,让下拉框加载所有用户。 - 非管理员时,明确限定只显示
editor角色,和你当前的默认行为对齐。 - 增加
$screen存在性判断,避免在非后台环境触发错误。
使用方式:将这段代码添加到主题的functions.php文件,或者自定义插件中即可生效。
内容的提问来源于stack exchange,提问作者Sunshine
相关产品推荐
相关产品推荐

