如何在wordpress中制作自定义ajax处理程序
How to make custom ajax handler in wordpress?
我正试图在wordpress中制作自定义ajax处理程序,因为admin-ajax.php处理从7秒到10秒的ajax请求需要很长时间,所以我在谷歌上搜索它,并设法做一些自定义的ajax-handler.php,比如这个
<?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();
}
我首先以文本$response = "test"
的形式发送响应,ajax调用花费了300ms,但当试图从另一个文件(如$response = wc_get_product(1463);
)调用函数时,它在响应Fatal error: Call to undefined function wc_get_product() in C:'wamp'www'....
中抛出了一个错误我试着使用这个ajaxflow插件制作自定义wordpress-ajax-handel,但这是接缝的事情,所以请告诉我如何从另一个文件调用函数,非常感谢您的帮助。
您需要加载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-aajax?
相关文章:
- 如何使用自定义标头跨域执行AJAX POST
- 自定义筛选器不'我不使用django数据表视图创建的ajax.data.Json
- 自定义AJAX数据类型
- Rails 4:形成远程自定义 ajax 请求
- 使用自定义 ajax 请求渲染 js 部分(而不是远程:true)
- 自定义 ajax 调用以 & 符号.js
- Magento :自定义 Ajax 调用下拉列表更改
- 如何在wordpress中制作自定义ajax处理程序
- 自定义Ajax文件上传程序,.AjaxSubmit()问题
- 使用AJAX上传自定义AJAX文件上传程序
- 如何正确实现自定义ajax
- Jqgrid自定义ajax请求
- Rails表单和对不同控制器的自定义Ajax调用
- 使用jQuery表单验证自定义Ajax请求
- 为多个页面定义和调用自定义AJAX函数无法工作
- jQuery+JavaScript:使用单个对象作为参数创建自定义ajax调用函数
- AngularJs服务中的自定义AJAX属性
- Rails中自定义AJAX的最佳实践
- 自定义AJAX服务器
- 如何完全重置自定义AJAX对象