簡體   English   中英

JavaScript 用 Ajax 撥打 WordPress API

[英]JavaScript with Ajax call to the WordPress API

我正在制作一個名為“customposttype”的 Wordpress 插件,它使用 3 個自定義字段制作自定義帖子類型。 該插件還必須對 WordPress API 進行 Ajax 調用,並以 JSON 格式從這些帖子中獲取所有數據,以在名為“shoplist.php”的特定模板中顯示它們。

我的 CPT 叫做“tienda”,它有這個 url 對於 REST API:...wp-json/wp/v2/tiendas。

我確信我有幾個錯誤,因為這是我第一次使用 API,而我在 Javascript 上的表現非常糟糕。

我被困在這里,我不知道如何繼續開發它。

JS 在控制台顯示“Hello world”。 但沒有別的。

PHP

add_action("wp_ajax_nopriv_get_shop_data", "get_shop_data");
add_action("wp_ajax_get_shop_data", "get_shop_data");
    
function get_shop_data() {
 
    $api_url = "https://pezquefuma.es/wp-json/wp/v2/tiendas";
    $request = wp_remote_get($api_url);
    $body = wp_remote_retrieve_body($request);
    $output = json_encode($body, true);
    echo $output;

    die();
}
    
    function my_enqueue() {
    if ( get_page_template_slug() == 'shoplist.php' ) {
    
     wp_enqueue_script( 'ajax-script', plugins_url('customposttype/js/filename.js'), array('jquery') );
      wp_localize_script( 'ajax-script', 'my_ajax_object', array( 
          'ajax_url' => admin_url('admin-ajax.php'),
          'nonce' => wp_create_nonce('my-nonce')
          ) 
      );
    }
 }
     
 add_action( 'wp_enqueue_scripts', 'my_enqueue' );

JS

jQuery( document ).ready(function() {
console.log("Hello world!");

jQuery.ajax({
    type : "GET",
    dataType : "JSON",
    url : my_ajax_object.ajax_url,
    data : {
        action: "get_shop_data",
    },

    error: function(response, error) {
        console.log("wrong");
    },

    success : function(response) {
        if(response.type === "success") {
            console.log("Success");
        }
    }
});

});

有兩種方法可以檢查響應數據。 一種是使用瀏覽器的.network devtool,另一種是使用console.log

 success : function(response) {
        console.log(response);
  }

暫無
暫無

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

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