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

求助:如何实现仅允许指定管理员进行WordPress插件更新?

问题分析与修正

你的代码逻辑完全搞反了,还漏掉了过滤函数的核心参数传递,最终导致所有管理员的插件更新权限都被禁用:

  • 当前代码是当用户是webadmin时,返回空的更新数组,等于把你想保留权限的用户给禁用了
  • 当用户不是webadmin时,函数没有返回任何值,WordPress会将这个过滤结果视为null,同样会阻断插件更新数据的获取,所以所有管理员都看不到更新提示

修正后的代码

function restrict_plugin_updates($transient) {
    // 获取当前登录用户
    $current_user = wp_get_current_user();
    
    // 仅允许webadmin用户查看插件更新
    if ($current_user->user_login !== "webadmin") {
        // 清空更新数组,让非webadmin用户看不到更新提示
        $transient->updates = array();
    }
    
    // 返回处理后的更新数据(webadmin用户返回原数据,其他人返回清空后的数据)
    return $transient;
}
add_filter('pre_site_transient_update_plugins', 'restrict_plugin_updates');

关键说明

  • 过滤函数必须接收$transient参数,这个参数就是WordPress原本要获取的插件更新原始数据
  • 反转判断逻辑:仅当用户不是webadmin时,才清空更新数组
  • 无论哪种情况都要返回处理后的$transient,不能不返回值,否则会导致所有用户都无法获取更新数据

内容的提问来源于stack exchange,提问作者Kc Tan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 15:30:52