近期在工作上需要用到wrodpress+vue做一個(gè)cms,這篇文章主要作回顧用.
因?yàn)楣緲I(yè)務(wù)的需要,沒有采用原來wp_rest_api開放出來的接口,而是采用新寫接口的方式,進(jìn)行前后端交互.
一.開啟接口插件
1.在wp的插件中搜索"WP REST API"進(jìn)行安裝;
2.建議下載postman或其他調(diào)試接口的工具,進(jìn)行數(shù)據(jù)測(cè)試;
在安裝/開啟WP REST API后,就可以進(jìn)行測(cè)試:
例: http://localhost:8080/wordpress/wp-json/wp/v2/posts/27?_embed
_embed這個(gè)參數(shù)可以取到特色圖篇
//這一段加入 functions中 可開啟自定義字段
register_rest_field('post', 'metadata', array(
'get_callback' => function ($data) {
return get_post_meta($data['id'], '', '');
},
));
參考資料: (包含基本的接口參數(shù))
https://developer.wordpress.org/rest-api/
二.自定義接口
因?yàn)樵趯?shí)際過程中,自帶的功能可能不能滿足期望,所以接下來就來介紹一下自定義接口.
例: 自定義產(chǎn)品查詢的接口,主要靠這兩個(gè)函數(shù),最后add_action()添加,詳情看注釋.
// 自定義產(chǎn)品查詢
function pro_query_callback($request) /* 前臺(tái)傳來的數(shù)據(jù)$request */
{
$res = $request->get_params();
global $wpdb; /* 本例數(shù)據(jù)庫為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');
前臺(tái)可以通過$axios('product/query',data);進(jìn)行查詢操作,其他數(shù)據(jù)庫操作以此類推,就不舉例了.
參考資料:
https://developer.wordpress.org/rest-api/
https://ninghao.net/blog/5492
https://www.darlang.com/2018/05/wordpress-rest-api-interface-custom-control/