首页 > 解决方案 > 我无法访问 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);
}

标签: wordpressapi

解决方案


这是 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"] );

推荐阅读