函数文档

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.