当前位置: 首页 > 面试题库 >

如何在wordpress中调用ajax

孙琨
2023-03-14
问题内容

我的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);
    }
});


 类似资料:
  • 问题内容: 我想知道是否可以在ajax调用中使用诸如query_post()之类的函数? 假设我正在调用文件_inc / ajax.php 我想笨拙地使用wordpress函数,但是我不知道为什么。有人可以帮我吗? 非常感谢 :) 问题答案: WordPress提供了一个Ajax网址,您应该将其与完整的Ajax API 一起使用。 您需要创建一个jQuery函数。 例: ajaxurl var始终

  • 问题内容: 我有一个带有2个下拉框的Wordpress网站。当我在第一个下拉框中选择一个选项时,我希望第二个选项被PHP函数中的数据刷新。为此,我需要ajax。但是我正在努力将Ajax绑定到Wordpress中。 HTML看起来像这样: 现在,例如,当用户选择“销售”时,我希望第二个选择标签重新加载来自PHP数组的匹配价格。 PHP函数如下所示: 我将jQuery Ajax调用保存在单独的.js文

  • 问题内容: 我正在编写一个Wordpress MU插件,它在每个帖子中都包含一个链接,并且我想在用户单击此链接时使用ajax调用插件功能之一,然后使用该功能的输出动态更新链接文本。 。 我陷入了ajax查询。我已经有了这种复杂的,显然有点乱的方法,但是它不是很有效。在插件中包含Ajax功能的“正确”或“ wordpress”方式是什么? (下面是我当前的黑客代码。单击生成链接时,在wp页面中得到的

  • 在Timber中是这个功能 在那里你会得到像这样的东西 但WordPress中还有其他功能,比如 不能从post.get_the_permalink或post.get_permalink访问 null

  • 问题内容: reset.php文件: 脚本Ajax: 嗨,我尝试在ajax中调用php reset函数,但是当我进行谷歌搜索时,我知道没有直接调用php函数的可能性,因此我将该特定函数放在单独的php文件中并调用该php文件,我不确定我该怎么做阿贾克斯我尝试了上面的代码,但没有任何反应。出现设置重设消息。我该怎么做任何帮助都将非常有用。在使用ajax概念之前,我尝试过使用php中的函数,但是每次只

  • 问题内容: 我熟悉以普通方式在jQuery中使用ajax。 我已经玩了一段时间了,但是不了解Wordpress使其正常工作需要 什么… 我在这里所摘录的内容来自一些教程或文章。 这在 functions.php中 (在子主题中): jQuery本身正在加载并正常工作。 我已经尝试过一些基本的ajax,如下所示: 除此之外,我不知道如何测试以确保它是否从一开始就正确地加载了…… 在这里的任何帮助,将