簡體   English   中英

方法POST的Wordpress REST API自定義端點

[英]Wordpress REST API custom endpoint for method POST

我目前正在開發一個需要WordPress網站和簡單REST API的項目。 我發現WordPress有自己的REST api,並決定擴展其功能以滿足我的需求。 我需要做的就是為GET和POST請求提供端點,這些端點從/向與WordPress沒有直接關系的表(但在同一個數據庫中)檢索/插入數據。 我成功地實現了所有GET請求,但是,我正在努力讓POST工作正常。
我有這個路由寄存器定義:

register_rest_route('api/v1', 'create-player/', array(
        'methods' => 'POST',
        'callback' => 'create_player',
));

客戶端通過ajax調用發送請求,該調用有望從上面的路由到達端點。 這是ajax:

    $.ajax({
       method: "POST",
       url: '/wp-json/api/v1/create-player/',
       data : JSON.stringify(data),
       contentType: 'applcation/json',
       beforeSend: function (xhr){
           xhr.setRequestHeader("X-WP-None", locData.nonce);
           console.log('beforeSend');
       },
       success: function(response){
           console.log("success" + response);
       },
       fail: function (response){
           console.log("fail" + response);
       }
    });

我不確定如何從REST api構建POST路由寄存器,其他GET請求具有直接映射到端點中傳遞的參數的屬性args 使用POST時,我是否需要類似的東西來處理請求數據? 如何獲取從ajax傳遞的數據類型,然后在我的函數create_player();使用它create_player(); WP REST API文檔似乎不完整,我發現的所有信息都使用內置WordPress功能的端點,如帖子/作者/博客等。但我不需要,我只想使用提供的功能和創建我自己的界面。 謝謝。

在你的回調函數中你可以使用這樣的東西:

 $param = $request->get_param( 'some_param' );

  // You can get the combined, merged set of parameters:
 $parameters = $request->get_params();

https://www.coditty.com/code/wordpress-api-custom-route-access-post-parameters

終於找到了! 為了訪問POST請求的主體,使用$request->get_body(); register_rest_route回調方法中。

在注冊路由時在方法中添加POST,在回調函數中通過$request數組訪問POST變量。 而已。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM