wordpress - wp_rest_api應(yīng)用

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容