Wordpress admin-ajax.php 在没有处理功能的情况下正在消亡“0”
Wordpress admin-ajax.php is dying "0" without processing function
我正在尝试学习如何以正确的方式在Wordpress中处理AJAX请求。为此,我正在调整本教程以创建一个超级简单的 AJAX 请求,以将帖子的 ID(来自链接)放入我的页面内容中。
逻辑
- 单击
#our-work a
链接时 [js] - 获取帖子 ID(来自
data-id
属性)并将其存储为postID
变量 [js] - 通过 AJAX 传递
postID
(使用 WP 的admin-ajax.php
文件)[js] example_ajax_request
函数将获取 ID 并简单地回显它 [php]- 如果成功,请将服务器响应附加到
#hero
div。
意识到这没有任何好处,但一旦我有了这项工作,我就会修改功能以服务于真正的目的。
我的代码
这是我在插件文件夹中创建的函数的副本:
wp_enqueue_script( 'my-ajax-request', plugin_dir_url( __FILE__ ) . 'acl-plugin.js', array( 'jquery' ) );
wp_localize_script( 'my-ajax-request', 'MyAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ) );
function example_ajax_request() {
if ( isset($_REQUEST) ) {
$postID = $_REQUEST['postID'];
echo $postID;
}
die();
}
add_action( 'wp_ajax_nopriv_example_ajax_request', 'example_ajax_request' );
这是JS文件的副本
jQuery(document).ready(function($) {
$('#our-work a').click( function() {
var postID = $(this).attr("data-id");
$.ajax({
url: MyAjax.ajaxurl,
data: {
'action':'example_ajax_request',
'postID' : postID
},
success:function(data) {
$('#hero').append( "Well this seems to work" + data );
},
error: function(errorThrown){
console.log("This has thrown an error:" + errorThrown);
}
});
return false;
});
});
问题所在
单击链接后,JS会触发,但会产生以下响应:
<div id="hero">
Well this seems to work 0
</div>
使用警报,我知道在 AJAX 请求之前正在拾取 ID。所以问题出在我的职能上。为了了解更多信息,我(暂时)调整了WP的admin-ajax.php
文件,以便我可以找出哪个die();
产生了"0"的响应。
这是文件中的最后一个,我认为它不会触发,因为我在自己的函数中有一个die();
命令。有人可以指出我哪里出错了吗?
这是我可以自豪地说的罕见时刻之一......这里没有任何问题!
服务器返回0
的原因是因为我已经登录了!该wp_ajax_nopriv_example_ajax_request
仅适用于未登录的用户。注销后,这工作正常。
因此,如果您想做同样的事情,只需确保在函数下方具有两个操作:
add_action( 'wp_ajax_example_ajax_request', 'example_ajax_request' );
add_action( 'wp_ajax_nopriv_example_ajax_request', 'example_ajax_request' );
相关文章:
- 对于如何在没有modernizr的情况下用边界半径的功能检测检查来替换我的旧浏览器检查
- 如何在应用切换点击功能之前,默认情况下在页面加载时隐藏带有特定类的ul-li
- 如何在启用ES6功能的情况下运行Node.js应用程序
- 在以下情况下,如何使用AJAX实现删除功能
- 只有在前一个功能成功完成的情况下,我才能正确地启动此功能
- Wordpress admin-ajax.php 在没有处理功能的情况下正在消亡“0”
- 多次点击功能在不重新加载页面的情况下不起作用
- 如何在以下情况下使隐藏/显示功能顺利进行
- 在不使用按钮的情况下显示列表,带有挖空功能
- 如何在不单击按钮的情况下执行此功能
- 在不设置参数的情况下,此功能如何工作
- 如何在没有任何html5功能的情况下通过javascript播放mp3文件
- 我们可以在不编写filteredMessages函数的情况下获得相同的功能
- 在不加载页面的情况下保留后退按钮功能
- 如何在不失去原有功能的情况下扩展JavaScript中的Object
- 如何在不移动过滤功能的情况下将一组过滤后的数据移动到另一个工作表
- 如何在没有用户注册的情况下实现保存到Lightbox功能
- 传单.绘制映射:如何在没有工具栏的情况下启动绘制功能
- 如何在不失去它的功能的情况下居中
- 在安装了Opera Mini的功能手机上,可以在不使用javascript的情况下选择要上传的文件来触发UI更改