rest_api_register_rewrites()
云策文档标注
概述
rest_api_register_rewrites() 函数用于为 WordPress REST API 注册重写规则,确保 API 请求能正确路由到相应的处理程序。它通过 add_rewrite_rule() 添加多个规则,支持不同 URL 前缀和路径的匹配。
关键要点
- 函数 rest_api_register_rewrites() 在 WordPress 4.4.0 版本中引入,用于初始化 REST API 的重写规则。
- 它调用 add_rewrite_rule() 添加四条规则,分别处理带或不带 index.php 的 REST API 根路径和子路径。
- 规则使用 rest_get_url_prefix() 获取 URL 前缀,确保与 REST API 配置一致。
- 此函数由 rest_api_init() 调用,是 REST API 初始化过程的一部分。
代码示例
function rest_api_register_rewrites() {
global $wp_rewrite;
add_rewrite_rule( '^' . rest_get_url_prefix() . '/?$', 'index.php?rest_route=/', 'top' );
add_rewrite_rule( '^' . rest_get_url_prefix() . '/(.*)?', 'index.php?rest_route=/$matches[1]', 'top' );
add_rewrite_rule( '^' . $wp_rewrite->index . '/' . rest_get_url_prefix() . '/?$', 'index.php?rest_route=/', 'top' );
add_rewrite_rule( '^' . $wp_rewrite->index . '/' . rest_get_url_prefix() . '/(.*)?', 'index.php?rest_route=/$matches[1]', 'top' );
}
原文内容
Adds REST rewrite rules.
Description
See also
Source
function rest_api_register_rewrites() {
global $wp_rewrite;
add_rewrite_rule( '^' . rest_get_url_prefix() . '/?$', 'index.php?rest_route=/', 'top' );
add_rewrite_rule( '^' . rest_get_url_prefix() . '/(.*)?', 'index.php?rest_route=/$matches[1]', 'top' );
add_rewrite_rule( '^' . $wp_rewrite->index . '/' . rest_get_url_prefix() . '/?$', 'index.php?rest_route=/', 'top' );
add_rewrite_rule( '^' . $wp_rewrite->index . '/' . rest_get_url_prefix() . '/(.*)?', 'index.php?rest_route=/$matches[1]', 'top' );
}
Changelog
| Version | Description |
|---|---|
| 4.4.0 | Introduced. |