我从未使用过这个插件和新的JSON Rest API 可能会包含在未来版本的core中。到目前为止,它和插件一样可用。
简而言之:目前该插件中似乎只有三种控制器
核心帖子回复,但有一节main 插件页面,解释how to extend the plugin and how to develop JSON API Controllers. 所以它实际上只是稍微修改了一下copypaste from 你本可以在detailed plugin page !
class JSON_API_Hello_Controller
{
public function hello_world()
{
return array(
"message" => "Hello, world"
);
}
}
您的控制器现在可以作为
hello
, 并暴露了一个
hello_world
方法
接下来,从WordPress管理界面激活控制器,该界面可从设置>JSON API下的菜单获得。您可以单击指向hello_world
方法或手动输入。其格式应为:http://www.example.org/api/hello/hello_world/?dev=1
或http://www.example.org/?json=hello.hello_world&dev=1
(请注意dev
参数以启用人类可读的输出)。您应该获得以下输出:
{
"status": "ok",
"message": "Hello, world"
}
使用查询变量要自定义控制器的行为,您需要使用全局变量
$json_api->query
对象将以下方法添加到控制器:
public function hello_person()
{
global $json_api;
$name = $json_api->query->name;
return array(
"message" => "Hello, $name."
);
}
现在,将名称query var附加到方法调用:
http://www.example.org/api/hello/hello_world/?dev=1&name=Alice
。。。或
http://www.example.org/?json=hello.hello_world&dev=1&name=Alice.
结果将是:
{
"status": "ok",
"message": "Hello, Alice"
}
要使控制器在外部插件或主题目录中可见,需要使用两个过滤器:
json_api_controllers
和
json_api_[controller]_controller_path
. 只需创建一个保存控制器的自定义插件并添加以下代码:
<?php
/** Plugin Name: (#109019) Custom Hello JSON API Controller */
function add_hello_controller( $controllers )
{
$controllers[] = \'hello\';
return $controllers;
}
add_filter( \'json_api_controllers\', \'add_hello_controller\' );
function set_hello_controller_path()
{
return plugin_dir_path( __FILE__ )."helloController.php";
}
add_filter( \'json_api_hello_controller_path\', \'set_hello_controller_path\' );
// >> Controller goes here <<
// A more organized file structure might work as well, but it\'s ok
// to stuff everything in a single file if used as mu-plugin.
您可以在控制器中使用任何类型的WP公共API函数。JSON API还有一个中间件层。示例:
global $json_api;
$posts = $json_api->introspector->get_posts( array(
\'meta_key\' => $json_api->query->key,
\'meta_value\' => $json_api->query->value
));