Rest API Multisite Site List?

时间:2018-08-20 作者:Nando

我有一个多站点,我可以使用rest api发布文章/标记等特定站点,但我想知道是否可以使用rest api获取网络上的站点列表?

类似这样:REST API for Multisite 但是没有插件?

2 个回复
SO网友:Jacob Peattie

多站点网络上的站点没有内置端点。如中所示the documentation, 内置端点包括:

+----------------+-------------------+
| Posts          | /wp/v2/posts      |
+----------------+-------------------+
| Post Revisions | /wp/v2/revisions  |
+----------------+-------------------+
| Categories     | /wp/v2/categories |
+----------------+-------------------+
| Tags           | /wp/v2/tags       |
+----------------+-------------------+
| Pages          | /wp/v2/pages      |
+----------------+-------------------+
| Comments       | /wp/v2/comments   |
+----------------+-------------------+
| Taxonomies     | /wp/v2/taxonomies |
+----------------+-------------------+
| Media          | /wp/v2/media      |
+----------------+-------------------+
| Users          | /wp/v2/users      |
+----------------+-------------------+
| Post Types     | /wp/v2/types      |
+----------------+-------------------+
| Post Statuses  | /wp/v2/statuses   |
+----------------+-------------------+
| Settings       | /wp/v2/settings   |
+----------------+-------------------+
通过REST API端点访问站点需要插件。要么你自己写,要么已经有了。

SO网友:Michel Moraes

多站点网络上的站点没有内置端点。您可以轻松地为api创建新的自定义路由,并将其添加到函数中。php:

function my_api_custom_route_sites() {
  $args = array(
    \'public\'    => 1, // I only want the sites marked Public
    \'archived\'  => 0,
    \'mature\'    => 0,
    \'spam\'      => 0,
    \'deleted\'   => 0,
  );

  $sites = wp_get_sites( $args );
  return $sites;
}

add_action(\'rest_api_init\', function() {
  register_rest_route(\'wp/v2\', \'sites\', [
    \'methods\' => \'GET\',
    \'callback\' => \'my_api_custom_route_sites\'
  ]); 
});
如果您访问:“/wp-json/wp/v2/sites”,这将输出网络中的所有站点。您可以创建任何自定义端点,而无需任何插件。

希望有帮助!

结束

相关推荐

使用MultiSite,我如何让网络上的两个不同的站点拥有不同的活跃主题?

我在使多站点按预期工作时遇到一些问题。我学习了一些教程,并一步一步地完成了所有的工作。多站点已启用,我可以访问站点网络,但当我更改一个站点仪表板上的主题时,我的所有站点的主题都会更改。我使用子目录,所以mydomain.com 和mydomain.com/site1 等。我注意到当我去仪表板mydomain.com/site1, 我只是想mydomain.com/wp-admin/. 我不知道这是否是预期的行为,但我认为可能是mydomain.com/site1/wp-admin/. 路由似乎工作不正常。