函数文档

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.