获取每个子站点具有混合结果的首页ID

时间:2018-09-28 22:17:42

标签: php wordpress multisite

我正在尝试获取WordPress多站点安装上所有站点的所有主页ID的列表。我正在使用下面的代码来做到这一点。

$subsites = get_sites();

foreach ( $subsites as $site ) {
    switch_to_blog( $site->blog_id );

    $site_data = [
        'id' => get_current_blog_id(),
        'home_id' => get_option( 'page_on_front' )
    ];

    restore_current_blog();
    $sites[] = $site_data;
}

但是我使用get_option( 'page_on_front' )得到了一些奇怪的结果。一些id返回为字符串,另一些返回为整数,另一些返回false。每个站点都分配有一个静态首页,并且各个站点设置下的“首页上的页面”选项的值确实已填写。关于为什么在尝试获取首页ID时会得到不同结果的任何想法?还是有get_option( 'page_on_front' )选项以外的另一种查找ID的方法?

$ sites dump

array(11) {
  [0]=>
  array(2) {
    ["id"]=>
    int(1)
    ["home_id"]=>
    string(4) "1862"
  }
  [1]=>
  array(2) {
    ["id"]=>
    int(2)
    ["home_id"]=>
    string(4) "2542"
  }
  [2]=>
  array(2) {
    ["id"]=>
    int(3)
    ["home_id"]=>
    string(3) "905"
  }
  [3]=>
  array(2) {
    ["id"]=>
    int(4)
    ["home_id"]=>
    int(1384)
  }
  [4]=>
  array(2) {
    ["id"]=>
    int(5)
    ["home_id"]=>
    string(2) "13"
  }
  [5]=>
  array(2) {
    ["id"]=>
    int(6)
    ["home_id"]=>
    string(4) "2885"
  }
  [6]=>
  array(2) {
    ["id"]=>
    int(7)
    ["home_id"]=>
    bool(false)
  }
  [7]=>
  array(2) {
    ["id"]=>
    int(8)
    ["home_id"]=>
    bool(false)
  }
  [8]=>
  array(2) {
    ["id"]=>
    int(9)
    ["home_id"]=>
    int(7)
  }
  [9]=>
  array(2) {
    ["id"]=>
    int(10)
    ["home_id"]=>
    string(1) "2"
  }
  [10]=>
  array(2) {
    ["id"]=>
    int(11)
    ["home_id"]=>
    string(1) "5"
  }
}

0 个答案:

没有答案