近期在工作上需要用到wrodpress+vue做一个cms,这篇文章主要作回顾用.
因为公司业务的需要,没有采用原来wp_rest_api开放出来的接口,而是采用新写接口的方式,进行前后端交互.
一.开启接口插件
1.在wp的插件中搜索"WP REST API"进行安装;
2.建议下载postman或其他调试接口的工具,进行数据测试;
在安装/开启WP REST API后,就可以进行测试:
例: http://localhost:8080/wordpress/wp-json/wp/v2/posts/27?_embed
_embed这个参数可以取到特色图篇
//这一段加入 functions中 可开启自定义字段
register_rest_field('post', 'metadata', array(
'get_callback' => function ($data) {
return get_post_meta($data['id'], '', '');
},
));
参考资料: (包含基本的接口参数)
https://developer.wordpress.org/rest-api/
二.自定义接口
因为在实际过程中,自带的功能可能不能满足期望,所以接下来就来介绍一下自定义接口.
例: 自定义产品查询的接口,主要靠这两个函数,最后add_action()添加,详情看注释.
// 自定义产品查询
function pro_query_callback($request) /* 前台传来的数据$request */
{
$res = $request->get_params();
global $wpdb; /* 本例数据库为mysql */
$result = $wpdb->get_results('SELECT * FROM wp_application');
return [$result, $res];
}
function pro_query_route()
{
register_rest_route('product/', 'query', [
'methods' => 'POST',
'callback' => 'pro_query_callback'
]);
}
add_action('rest_api_init', 'pro_query_route');
前台可以通过$axios('product/query',data);进行查询操作,其他数据库操作以此类推,就不举例了.
参考资料:
https://developer.wordpress.org/rest-api/
https://ninghao.net/blog/5492
https://www.darlang.com/2018/05/wordpress-rest-api-interface-custom-control/