get_blog_list()
云策文档标注
概述
get_blog_list() 是一个已弃用的 WordPress 函数,用于检索所有站点的列表。自 WordPress 3.0.0 起,建议使用 wp_get_sites() 替代。
关键要点
- 该函数已弃用,不应在新代码中使用,应改用 wp_get_sites()。
- 函数通过查询数据库获取公开、非归档、非成熟、非垃圾、未删除的站点,并返回包含 blog_id、domain、path 和 postcount 的数组。
- 参数包括 $start(偏移量,默认 0)、$num(返回数量,默认 10)和 $deprecated(未使用)。
代码示例
function get_blog_list( $start = 0, $num = 10, $deprecated = '' ) {
_deprecated_function( __FUNCTION__, '3.0.0', 'wp_get_sites()' );
global $wpdb;
$blogs = $wpdb->get_results( $wpdb->prepare( "SELECT blog_id, domain, path FROM $wpdb->blogs WHERE site_id = %d AND public = '1' AND archived = '0' AND mature = '0' AND spam = '0' AND deleted = '0' ORDER BY registered DESC", get_current_network_id() ), ARRAY_A );
$blog_list = array();
foreach ( (array) $blogs as $details ) {
$blog_list[ $details['blog_id'] ] = $details;
$blog_list[ $details['blog_id'] ]['postcount'] = $wpdb->get_var( "SELECT COUNT(ID) FROM " . $wpdb->get_blog_prefix( $details['blog_id'] ). "posts WHERE post_status='publish' AND post_type='post'" );
}
if ( ! $blog_list ) {
return array();
}
if ( 'all' === $num ) {
return array_slice( $blog_list, $start, count( $blog_list ) );
} else {
return array_slice( $blog_list, $start, $num );
}
}注意事项
- 函数内部调用 _deprecated_function() 标记为弃用,使用时会触发警告。
- 相关函数包括 get_current_network_id()、wpdb::get_blog_prefix() 等,用于辅助数据库操作。
- 变更记录显示,自 WordPress 3.0.0 版本起弃用,最初在 MU 版本中引入。
原文内容
Deprecated functionality to retrieve a list of all sites.
Description
See also
Parameters
$startintoptional-
Offset for retrieving the blog list. Default 0.
$numintoptional-
Number of blogs to list.
Default:
10 $deprecatedstringoptional-
Unused.
Source
function get_blog_list( $start = 0, $num = 10, $deprecated = '' ) {
_deprecated_function( __FUNCTION__, '3.0.0', 'wp_get_sites()' );
global $wpdb;
$blogs = $wpdb->get_results( $wpdb->prepare( "SELECT blog_id, domain, path FROM $wpdb->blogs WHERE site_id = %d AND public = '1' AND archived = '0' AND mature = '0' AND spam = '0' AND deleted = '0' ORDER BY registered DESC", get_current_network_id() ), ARRAY_A );
$blog_list = array();
foreach ( (array) $blogs as $details ) {
$blog_list[ $details['blog_id'] ] = $details;
$blog_list[ $details['blog_id'] ]['postcount'] = $wpdb->get_var( "SELECT COUNT(ID) FROM " . $wpdb->get_blog_prefix( $details['blog_id'] ). "posts WHERE post_status='publish' AND post_type='post'" );
}
if ( ! $blog_list ) {
return array();
}
if ( 'all' === $num ) {
return array_slice( $blog_list, $start, count( $blog_list ) );
} else {
return array_slice( $blog_list, $start, $num );
}
}
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Deprecated. Use wp_get_sites() |
| MU (3.0.0) | Introduced. |