函数文档

get_admin_users_for_domain()

💡 云策文档标注

概述

get_admin_users_for_domain() 是一个已弃用的 WordPress 函数,用于获取指定域名和路径组合的网络管理员用户。该函数在 4.4.0 版本中被标记为弃用,开发者应避免使用。

关键要点

  • 函数已弃用:自 WordPress 4.4.0 起,使用 _deprecated_function() 标记,建议寻找替代方案。
  • 功能:根据域名和路径参数查询网络管理员用户,返回用户数组或 false。
  • 参数:$domain(可选,网络域名)和 $path(可选,网络路径),默认值为空字符串。
  • 返回值:数组(包含用户 ID、登录名和密码)或 false(查询失败时)。
  • 内部实现:通过 get_networks() 获取网络 ID,然后使用 wpdb::prepare() 和 wpdb::get_results() 执行 SQL 查询。

代码示例

function get_admin_users_for_domain( $domain = '', $path = '' ) {
    _deprecated_function( __FUNCTION__, '4.4.0' );

    global $wpdb;

    if ( ! $domain ) {
        $network_id = get_current_network_id();
    } else {
        $_networks  = get_networks( array(
            'fields' => 'ids',
            'number' => 1,
            'domain' => $domain,
            'path'   => $path,
        ) );
        $network_id = ! empty( $_networks ) ? array_shift( $_networks ) : 0;
    }

    if ( $network_id )
        return $wpdb->get_results( $wpdb->prepare( "SELECT u.ID, u.user_login, u.user_pass FROM $wpdb->users AS u, $wpdb->sitemeta AS sm WHERE sm.meta_key = 'admin_user_id' AND u.ID = sm.meta_value AND sm.site_id = %d", $network_id ), ARRAY_A );

    return false;
}

注意事项

  • 弃用状态:此函数已弃用,不应在新代码中使用,需考虑其他方法获取网络管理员信息。
  • 安全风险:函数直接查询数据库并返回用户密码(user_pass),可能涉及安全敏感数据,使用时需谨慎。
  • 多站点环境:仅适用于 WordPress 多站点网络,单站点环境中可能不适用或返回空结果。

📄 原文内容

Get the admin for a domain/path combination.

Parameters

$domainstringoptional
Network domain.
$pathstringoptional
Network path.

Return

array|false The network admins.

Source

function get_admin_users_for_domain( $domain = '', $path = '' ) {
	_deprecated_function( __FUNCTION__, '4.4.0' );

	global $wpdb;

	if ( ! $domain ) {
		$network_id = get_current_network_id();
	} else {
		$_networks  = get_networks( array(
			'fields' => 'ids',
			'number' => 1,
			'domain' => $domain,
			'path'   => $path,
		) );
		$network_id = ! empty( $_networks ) ? array_shift( $_networks ) : 0;
	}

	if ( $network_id )
		return $wpdb->get_results( $wpdb->prepare( "SELECT u.ID, u.user_login, u.user_pass FROM $wpdb->users AS u, $wpdb->sitemeta AS sm WHERE sm.meta_key = 'admin_user_id' AND u.ID = sm.meta_value AND sm.site_id = %d", $network_id ), ARRAY_A );

	return false;
}

Changelog

Version Description
4.4.0 Deprecated.
MU (3.0.0) Introduced.