wordpress - 我无法访问 wp url 参数
问题描述
我正在尝试将 url 参数添加到自定义 wp rest api 端点,但是当我使用此 url 访问端点时:mysite.com/wp-json/booking/pris?name=carl,我收到此错误:
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
这是我的代码:
add_action( 'rest_api_init', 'my_register_route_for_price' );
function my_register_route_for_price() {
global $wp;
$wp->add_query_var( 'name' );
register_rest_route( 'booking', 'pris', array(
'methods' => 'GET',
'callback' => 'get_price_callback',
)
);
}
function get_price_callback() {
$param = $request->get_url_params( 'name' );
return rest_ensure_response($param);
}
解决方案
这是 WordPress 的安全功能。
WP_Query
需要首先定义类范围之外的未定义的 WordPress 查询变量。
WP::add_query_var( string $qv )
将查询变量添加到公共查询变量列表中。
用例场景
<?php
add_action( 'init','wp67408336' );
function wp67408336() {
global $wp;
$wp->add_query_var( 'name' );
};
任何状况之下
<?php
$name = htmlspecialchars( $_GET["name"] );
推荐阅读
- class - 神秘的 SCSS 覆盖我的 custom.scss
- python - '{{node conv2d_3/Conv2D} 从 1 中减去 3 导致的负维度大小
- python - 类方法:function(self)和function的区别在哪里?
- sql-server - 如何更新 SQL Server 以恢复数据库备份?
- c# - C# 使用替换构建排列,但如果位置中不存在则跳过
- c# - 保留来自 dataReader c# 的 int 变量值
- python - Plotly:如何使所有地块灰度化?
- c# - Entity Framework Core 5 主键问题
- powershell - 在同一终端中执行字符串
- openlayers - 是否有将 Openlayers 范围交互限制为指定数量的地理单元或度数的属性?