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. |