wordpress - wp_rest_api应用

近期在工作上需要用到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/

你可能感兴趣的:(wordpress - wp_rest_api应用)