我有一个多站点,我可以使用rest api发布文章/标记等特定站点,但我想知道是否可以使用rest api获取网络上的站点列表?
类似这样:REST API for Multisite 但是没有插件?
我有一个多站点,我可以使用rest api发布文章/标记等特定站点,但我想知道是否可以使用rest api获取网络上的站点列表?
类似这样:REST API for Multisite 但是没有插件?
多站点网络上的站点没有内置端点。如中所示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端点访问站点需要插件。要么你自己写,要么已经有了。多站点网络上的站点没有内置端点。您可以轻松地为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”,这将输出网络中的所有站点。您可以创建任何自定义端点,而无需任何插件。希望有帮助!
我在使多站点按预期工作时遇到一些问题。我学习了一些教程,并一步一步地完成了所有的工作。多站点已启用,我可以访问站点网络,但当我更改一个站点仪表板上的主题时,我的所有站点的主题都会更改。我使用子目录,所以mydomain.com 和mydomain.com/site1 等。我注意到当我去仪表板mydomain.com/site1, 我只是想mydomain.com/wp-admin/. 我不知道这是否是预期的行为,但我认为可能是mydomain.com/site1/wp-admin/. 路由似乎工作不正常。