函数文档

wp_maybe_grant_site_health_caps()

💡 云策文档标注

概述

wp_maybe_grant_site_health_caps() 是一个 WordPress 过滤器函数,用于在必要时授予用户 'view_site_health_checks' 能力。它基于用户的 'install_plugins' 能力和站点配置(如是否为多站点或超级管理员)来动态调整能力数组。

关键要点

  • 函数作用:过滤用户能力,以授予 'view_site_health_checks' 能力。
  • 核心逻辑:如果用户拥有 'install_plugins' 能力,并且站点不是多站点或用户是超级管理员,则授予 'view_site_health_checks' 能力。
  • 参数:接受 $allcaps(用户能力数组)、$caps(请求的原始能力数组)、$args(能力检查参数数组)和 $user(WP_User 对象)。
  • 返回值:返回过滤后的用户能力数组。

代码示例

function wp_maybe_grant_site_health_caps( $allcaps, $caps, $args, $user ) {
	if ( ! empty( $allcaps['install_plugins'] ) && ( ! is_multisite() || is_super_admin( $user->ID ) ) ) {
		$allcaps['view_site_health_checks'] = true;
	}

	return $allcaps;
}

注意事项

  • 该函数从 WordPress 5.2.2 版本引入。
  • 在多站点环境中,仅超级管理员会被授予 'view_site_health_checks' 能力,即使普通管理员拥有 'install_plugins' 能力。
  • 相关函数包括 is_super_admin() 和 is_multisite(),用于检查用户权限和站点配置。

📄 原文内容

Filters the user capabilities to grant the ‘view_site_health_checks’ capabilities as necessary.

Parameters

$allcapsbool[]required
An array of all the user’s capabilities.
$capsstring[]required
Required primitive capabilities for the requested capability.
$argsarrayrequired
Arguments that accompany the requested capability check.

  • 0 string
    Requested capability.
  • 1 int
    Concerned user ID.
  • ...$2 mixed
    Optional second and further parameters, typically object ID.

$userWP_Userrequired
The user object.

Return

bool[] Filtered array of the user’s capabilities.

Source

function wp_maybe_grant_site_health_caps( $allcaps, $caps, $args, $user ) {
	if ( ! empty( $allcaps['install_plugins'] ) && ( ! is_multisite() || is_super_admin( $user->ID ) ) ) {
		$allcaps['view_site_health_checks'] = true;
	}

	return $allcaps;
}

Changelog

Version Description
5.2.2 Introduced.