好吧,WordPress今天下午一直在毁灭我,我真的搞不懂这个问题。我们正在建立一个多站点网络,为了我们的特殊目的,需要在每个多站点之间循环以获取一些post数据等。
Test Case #1:
$sites = array ();
foreach(wp_get_sites() as $blog_details) {
// switch to the blog
switch_to_blog($blog_details[\'blog_id\']);
// store the blog id & name
$sites[$blog_details[\'blog_id\']] = get_bloginfo(\'name\');
// restore the current blog
// when coming out of the loop
restore_current_blog();
}
我们正在遍历每个站点,根据ID切换到该博客,并将ID和名称存储为键=>值对,以供以后使用。在每次迭代结束时,我们将恢复最后一个博客。生成的数组如下所示-
Array
(
[1] => Site 1
[2] => Site 2
[3] => Site 3
[4] => Site 4
[5] => Site 5
[6] => Site 6
)
我已经看过了,可以确认ID和名称是正确的-太棒了!
Test Case #2:
foreach($sites as $blog_id => $name) {
switch_to_blog($blog_id);
$sites[$blog_id] = get_bloginfo(\'name\');
restore_current_blog();
}
我们正在遍历生成的blog ID=>name值数组(如上所示),切换到适当的blog ID(我已经调试过,可以验证ID是否正确),然后根据现有数组设置检索到的blog名称。我们的新结果数组如下所示-
Array
(
[1] => Site 1
[2] => Site 1
[3] => Site 1
[4] => Site 1
[5] => Site 1
[6] => Site 1
)
它们现在都显示为站点1?!您可以看到这些键仍然正确,正如预期的那样。在使用
switch_to_blog($blog_id)
方法,但无济于事。
这里真正的问题(不仅仅是测试用例)并不是我无法获取博客名称,所以请不要对获取多站点博客名称的其他调用提出建议,而是除了站点1之外,我无法查询任何多站点。
我真的希望有人能帮我解决这个问题!