[英]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.