如何在wordpress中调用ajax

我的ajax调用输出始终显示0,因为输出不知道为什么

functions.php我有这段代码

function get_data() {

$abc = '1';

$result = $wpdb->get_results("SELECT * FROM ".$wpdb->options ." WHERE option_name LIKE '_transient_%'");

echo $result; //returning this value but still shows 0

wp_die();

}

add_action( 'wp_ajax_nopriv_get_data', 'get_data' );

add_action( 'wp_ajax_get_data', 'get_data' );

我的ajax调用是在javascript中

$('body').on("click", ".re-reset-btn", function(e){

var panel = $('#re-compare-bar');

$.ajax({

type : "GET",

dataType : "json",

url : "/wp-admin/admin-ajax.php",

data : {action: "get_data"},

success: function(response) {

alert("Your vote could not be added");

alert(response);

}

});

$("#re-compare-bar-tabs div").remove();

$('.re-compare-icon-toggle .re-compare-notice').text(0);

});

我没有使用插件就在wordpress中进行ajax调用,但是没有得到我正在传递的内容,即使输出$ abc仍然显示0。

回答:

在后端,WordPress本身定义了全局ajaxurl变量。

该变量不是由WP在前端创建的。这意味着,如果要在前端使用AJAX调用,则必须自己定义此类变量。

做到这一点的好方法是使用wp_localize_script。

假设您的AJAX调用位于my-ajax-script.js文件中,然后为该JS文件添加wp_localize_script,如下所示:

function my_enqueue() {

wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') );

wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );

}

add_action( 'wp_enqueue_scripts', 'my_enqueue' );

本地化JS文件后,可以在JS文件中使用my_ajax_object对象:

jQuery.ajax({

type: "post",

dataType: "json",

url: my_ajax_object.ajax_url,

data: formData,

success: function(msg){

console.log(msg);

}

});

以上是 如何在wordpress中调用ajax 的全部内容, 来源链接: utcz.com/qa/416205.html

回到顶部