Javascript 如何在wordpress中定制ajax处理程序?
我试图在wordpress中创建自定义ajax处理程序,因为admin-ajax.php需要很长时间来处理从7秒到10秒的ajax请求,所以我在google上搜索它并管理它来做一些类似这样的自定义ajax-handler.phpJavascript 如何在wordpress中定制ajax处理程序?,javascript,php,jquery,ajax,wordpress,Javascript,Php,Jquery,Ajax,Wordpress,我试图在wordpress中创建自定义ajax处理程序,因为admin-ajax.php需要很长时间来处理从7秒到10秒的ajax请求,所以我在google上搜索它并管理它来做一些类似这样的自定义ajax-handler.php <?php if (is_ajax_request()) { if (isset($_POST["action"]) && !empty($_POST["action"])) { //Checks if action value exist
<?php
if (is_ajax_request()) {
if (isset($_POST["action"]) && !empty($_POST["action"])) { //Checks if action value exists
$action = $_POST["action"];
switch($action) { //Switch case for value of action
case "test": test_function(); break;
}
}
}
//Function to check if the request is an AJAX request
function is_ajax_request() {
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}
function test_function()
{
$response = wc_get_product(1463);
header('Content-Type: application/json');
echo json_encode($response);
die();
}
您需要加载wp才能使用其功能
require_once 'wp-load.php' //note find the file relative to your files location or do a dynamic url to find .. e.g. `$_SERVER['DOCUMENT_ROOT']`
if (is_ajax_request()) {
if (isset($_POST["action"]) && !empty($_POST["action"])) { //Checks if action value exists
$action = $_POST["action"];
switch($action) { //Switch case for value of action
case "test": test_function(); break;
}
}
}
//Function to check if the request is an AJAX request
function is_ajax_request() {
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}
function test_function()
{
$response = wc_get_product(1463);
header('Content-Type: application/json');
echo json_encode($response);
die();
}
但是wp-ajax本身可能不是问题所在,您是否使用像“test”这样的简单输出来测试wp-ajax 注意:当包含wp-load.php时,最好从ajax文件的目录开始,然后返回Wordpress根目录,而不是使用$\u服务器['DOCUMENT\u root']
,因为wp可以安装在子目录中,而您可能不知道这是/将是什么(即插件中的自定义ajax处理程序)