我有一段代码显示了我的多站点中的站点列表,我想排除已存档的站点:
$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\']
.