函数文档

get_nonauthor_user_ids()

💡 云策文档标注

概述

get_nonauthor_user_ids() 是一个已弃用的 WordPress 函数,用于获取所有非作者用户。它通过查询数据库中的用户元数据来实现,但自 WordPress 3.1.0 起,建议使用 get_users() 替代。

关键要点

  • 函数 get_nonauthor_user_ids() 已弃用,自 WordPress 3.1.0 起推荐使用 get_users()。
  • 函数通过查询 $wpdb->usermeta 表,基于 meta_key(如 user_level 或 capabilities)和 meta_value = '0' 来识别非作者用户。
  • 在单站点和多站点环境中,meta_key 的选择不同:单站点使用 user_level,多站点使用 capabilities。
  • 函数内部调用了 _deprecated_function() 来标记弃用状态。

代码示例

function get_nonauthor_user_ids() {
    _deprecated_function( __FUNCTION__, '3.1.0', 'get_users()' );

    global $wpdb;

    if ( !is_multisite() )
        $level_key = $wpdb->get_blog_prefix() . 'user_level';
    else
        $level_key = $wpdb->get_blog_prefix() . 'capabilities';

    return $wpdb->get_col( $wpdb->prepare("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = %s AND meta_value = '0'", $level_key) );
}

注意事项

  • 此函数已弃用,不应在新代码中使用,以避免兼容性问题。
  • 在多站点环境中,函数处理方式与单站点不同,需注意 meta_key 的差异。
  • 函数依赖于 WordPress 数据库类 $wpdb 和相关函数,如 wpdb::prepare() 用于 SQL 查询安全。

📄 原文内容

Gets all users who are not authors.

Source

function get_nonauthor_user_ids() {
	_deprecated_function( __FUNCTION__, '3.1.0', 'get_users()' );

	global $wpdb;

	if ( !is_multisite() )
		$level_key = $wpdb->get_blog_prefix() . 'user_level';
	else
		$level_key = $wpdb->get_blog_prefix() . 'capabilities'; // WPMU site admins don't have user_levels.

	return $wpdb->get_col( $wpdb->prepare("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = %s AND meta_value = '0'", $level_key) );
}

Changelog

Version Description
3.1.0 Introduced.