You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 03:34:52