2017-05-05 82 views
0

现在已经有这个问题一段时间了。Wordpress REST API自定义终端,不能使用ID参数

{"code":"rest_no_route","message":"No route was found matching the URL and request method","data":{"status":404}}

这是我的PHP代码段

add_action('rest_api_init', function() { 
    $namespace = 'contact'; 
    $endpoint = '/conversation/(?P<id>)'; 
    register_rest_route($namespace, $endpoint, array(
     'methods' => 'GET', 
     'callback' => 'conversations', 
    )); 
}); 

function conversations($data) { 
    $return = array(
     'data'=> $data['id'] 
    ); 
    wp_send_json($return); 
} 

而且我提出通过前端的形式。

<form method="GET" class="form inline" action="<?php echo(get_home_url() . '/wp-json/contact/conversation/'.$value->unique_id); ?>"> 
    <button value="submit" class="ui green basic button reply" style="line-height: 0;">Reply</button> 
</form> 

它编译成

<form method="GET" class="form inline" action="http://localhost:8888/wp-json/contact/conversation/304eb9aca04bae9d9b9d946968a4435c"> 
    <button value="submit" class="ui green basic button reply" style="line-height: 0;">Reply</button> 
</form> 

和最终网址 http://localhost:8888/wp-json/contact/conversation/304eb9aca04bae9d9b9d946968a4435c?

当我删除网址和形式,它的工作原理ID ...但我需要的ID作为参数。

回答

1

基本上,错误是我没有声明正则表达式是正确的。

而不是(?P<id>)我用(?P<id>[a-zA-Z0-9-]+)这样我匹配任何字符串