Wordpress Rest-Api 自定义修改 wp-json 路由
Wordpress Rest-Api 提供了一个钩子 rest_url_prefix 可自定义修改 wp-json 路由,比如将默认的 wp-json 变更为 api。
Rest-Api 路由示例
默认路由示例
https://yangjunwei.com/wp-json/wp/v2/posts/1
新路由示例
如下都以 wp-json 修改为 api 为例。
https://yangjunwei.com/api/wp/v2/posts/1
Rest-Api 路由修改
Wordpress 提供了一个钩子来修改 wp-json 地址,代码如下
function yjw_set_rest_api_prefix(){
return 'api';
}
add_filter('rest_url_prefix', 'yjw_set_rest_api_prefix');
将上述代码放到主题目录 functions.php 文件中,记得前往 WordPress [后台-设置-固定链接] 中点击保存设置,使得 WordPress 刷新固定链接,新路由才会生效。
还有另一个方法,只是不推荐
/**
* REST API路由,wp-json路由别名(/api)
* @param object $wp_rewrite WP_Rewrite
* @return void
*/
function yjw_handle_api_rewrite_rules($wp_rewrite){
if( $ps = get_option('permalink_structure') ){
$new_rules = array();
$new_rules['^api/?$'] = 'index.php?rest_route=/';
$new_rules['^api/(.*)?'] = 'index.php?rest_route=/$matches[1]';
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
}
add_action('generate_rewrite_rules', 'yjw_handle_api_rewrite_rules'); //可直接用 `rest_url_prefix` 更改wp-json至api