我有一段代码显示了我的多站点中的站点列表,我想排除已存档的站点:
$mySites = ( wp_get_sites( $args ) );
foreach ( $mySites as $blog ) {
if ( ! ( is_archived($blog) ) ) {
switch_to_blog( $blog[\'blog_id\'] );
printf( \'%s<a href="%s">%s</a></li>\' . "\\r\\n", $TagLi, home_url(), get_option( \'blogname\' ) );
restore_current_blog();
}
}
在更新到4.7之前,这是正常工作的。现在,它不再排除存档的站点,而是打印出一个完整的列表。
具有功能is_archived() 是否更改?或者问题是什么?
SO网友:birgire
请注意get_sites() 与不推荐的输出不同wp_get_sites() 功能在WordPress 4.7+。
这个get_sites() 函数返回WP_Site 对象,但wp_get_sites() 返回数组的数组。
所以如果你使用get_sites(), 您需要使用以下内容调整代码段:
is_archived( $blog->blog_id )
以及
switch_to_blog( $blog->blog_id );
而不是使用
$blog[\'blog_id\'].