我需要一些php请求来获取wp-network中所有站点的列表。有可能吗?
答案 0 :(得分:1)
您可以使用
<?php wp_get_sites( $args ); ?>
示例,对于下面的v 3.0
<?php
$blog_list = get_blog_list( 0, 'all' );
foreach ($blog_list AS $blog) {
echo 'Blog '.$blog['blog_id'].': '.$blog['domain'].$blog['path'].'<br />';
}
?>
答案 1 :(得分:1)
从WP 4.6开始,有一个新的function to query sites get_sites($query_arg)
与用于检索帖子的熟悉的get_posts($query_args)
类似,
$blogs_ids=get_sites();
foreach( $blog_ids as $b ){
$b->blog_id
//Do stuff
}
答案 2 :(得分:0)
当您希望与所有多站点版本兼容时,使用WordPress功能会有些问题:
我更喜欢使用以下代码,该代码与所有WordPress版本(当然是3.0.0版本)兼容,并返回安装的所有站点(甚至是归档站点,已停用站点等):>
global $wpdb;
$blogs = $wpdb->get_results( "SELECT blog_id, domain, path FROM $wpdb->blogs ORDER BY blog_id" );
如果要过滤结果,而不显示已归档的,已停用的结果和垃圾邮件站点,则必须在查询中指出如下:
global $wpdb;
$blogs = $wpdb->get_results( "SELECT blog_id, domain, path FROM $wpdb->blogs WHERE archived = '0' AND deleted = '0' AND spam = '0' ORDER BY blog_id" );
参考: get_blog_list