WordPress 中的 adminajax.php

wordpress 利用admin-ajax.php来处理逻辑

文件是用于处理 AJAX 请求的关键文件之一。通过 adminajax.php,您可以在前端或后台发送 AJAX 请求并在服务器端处理这些请求。以下是处理 AJAX 请求的基本步骤:

 

  1. 在 WordPress 主题中添加 JavaScript: 首先,您需要在您的 WordPress 主题中添加 JavaScript 代码,以便发送 AJAX 请求。您可以使用 wp_enqueue_script 函数将 JavaScript 文件添加到您的主题中,确保在 WordPress 加载 jQuery 后添加以下代码:

    function enqueue_custom_scripts() {
       wp_enqueue_script('customajax', get_template_directory_uri() . '/js/customajax.js', array('jquery'), '1.0', true);
       wp_localize_script('customajax', 'customAjaxObj', array('ajaxurl' => admin_url('adminajax.php')));
    }
    add_action('wp_enqueue_scripts', 'enqueue_custom_scripts');

    上面的代码将加载一个名为 customajax.js 的 JavaScript 文件,并通过 wp_localize_script 函数将 ajaxurl 变量传递给 JavaScript,该变量包含了 adminajax.php 的 URL。

  2. 编写 JavaScript 代码: 在 customajax.js 文件中,您可以编写 JavaScript 代码来处理 AJAX 请求。以下是一个示例代码片段,演示如何发送 AJAX 请求:

    jQuery(document).ready(function($) {
       // 当按钮被点击时触发 AJAX 请求
       $('#mybutton').on('click', function() {
           $.ajax({
               url: customAjaxObj.ajaxurl, // 使用 wp_localize_script 传递的 URL
               type: 'POST',
               data: {
                   action: 'my_ajax_action', // 自定义 AJAX 动作名称
                   // 其他要传递的数据
               },
               success: function(response) {
                   // 处理来自服务器的响应
               }
           });
       });
    });
  3. 创建服务器端处理程序: 在主题的 functions.php 文件中,您需要添加一个处理 AJAX 请求的函数。这个函数将通过 action 参数来识别请求类型,并执行相应的逻辑。

    // 创建 AJAX 请求的处理程序
    add_action('wp_ajax_my_ajax_action', 'my_ajax_action_callback');
    add_action('wp_ajax_nopriv_my_ajax_action', 'my_ajax_action_callback'); // 如果需要对未登录用户开放该功能
    
    function my_ajax_action_callback() {
       // 执行您的逻辑处理
       // 这里可以进行数据库查询、计算等操作
       $result = '处理完成的结果';
    
       // 返回响应
       echo json_encode($result);
    
       // 不要忘记终止 WordPress 运行
       wp_die();
    }

    上面的代码中,my_ajax_action 是您自定义的 AJAX 动作名称,它与 JavaScript 代码中的 action 参数相匹配。my_ajax_action_callback 函数执行实际的逻辑,并返回响应。

  4. 处理前端响应: 最后,在前端的 AJAX 请求成功回调中,您可以处理来自服务器的响应。在上面的 JavaScript 代码示例中,成功回调中的 response 参数将包含服务器返回的数据。

这是一个基本的示例,您可以根据需要进行扩展和定制。使用 adminajax.php 来处理 AJAX 请求是一个常见的 WordPress 开发模式,可以让您在不刷新页面的情况下执行各种操作。