Javascript 为什么wordpress网站对jquery的要求不好?
我将以下jquery代码放在主题文件夹的page footer.php上:Javascript 为什么wordpress网站对jquery的要求不好?,javascript,jquery,wordpress,Javascript,Jquery,Wordpress,我将以下jquery代码放在主题文件夹的page footer.php上: jQuery( document ).ready(function() { jQuery('body').on('click', 'a.closebtn', function(e) { jQuery(document.body).removeClass('commentpopupdata'); return false; }); jQuery( ".commentCount
jQuery( document ).ready(function() {
jQuery('body').on('click', 'a.closebtn', function(e) {
jQuery(document.body).removeClass('commentpopupdata');
return false;
});
jQuery( ".commentCountDiv" ).click(function() {
var product_id = jQuery(this).attr("com_productid");
jQuery(document.body).addClass('commentpopupdata');
jQuery.ajax({
url:"<?php echo admin_url( 'admin-ajax.php' ); ?>",
type:'POST',
data:'action=productscomments&product_id='+product_id,
success:function(results)
{
jQuery(".upcomproduct").html(results);
}
});
return false;
});
});
jQuery(文档).ready(函数(){
jQuery('body')。在('click','a.closebtn',函数(e)上{
jQuery(document.body).removeClass('CommentPopUpdatea');
返回false;
});
jQuery(“.commentCountDiv”)。单击(函数(){
var product_id=jQuery(this.attr(“com_productid”);
jQuery(document.body).addClass('commentPopUpdatea');
jQuery.ajax({
url:“”,
类型:'POST',
数据:'action=productscomments&product_id='+product_id,
成功:功能(结果)
{
jQuery(“.upcomproduct”).html(结果);
}
});
返回false;
});
});
错误消息:POST 400(错误请求)
如何修复错误?您在这一行遇到的问题:
数据:'action=productscomments&product\u id='+product\u id,
该操作实际上是必须在钩子中定义的Ajax处理程序
add_action('wp_ajax_my_action','my_function')代码>
add_action('wp_ajax_nopriv_my_action','my_function')代码>
请注意,在wp\u ajax\u
和wp\u ajax\u nopriv\u
之后,我们添加了动作值,即我的动作
正如您在脚本中定义的那样,该操作等于productscomments&product_id='+product_id,
WordPress尝试查找具有该名称的操作,当该操作不可用时,您将获得400(错误请求)
因此,例如,如果您想在用户单击commentCountDiv
按钮时重新计算注释,您的代码应该如下所示:
jQuery( document ).ready(function() {
jQuery('body').on('click', 'a.closebtn', function(e) {
jQuery(document.body).removeClass('commentpopupdata');
return false;
});
jQuery( ".commentCountDiv" ).click(function() {
var product_id = jQuery(this).attr("com_productid");
jQuery(document.body).addClass('commentpopupdata');
jQuery.ajax({
url:"<?php echo admin_url( 'admin-ajax.php' ); ?>",
type:'POST',
data:{
'action': 'my_action', //here is your function name
'product_id': 'product_id',
},
success:function(results)
{
jQuery(".upcomproduct").html(results);
}
});
return false;
});
});
通常需要向wp ajax发送一个nonce
。还要确保wp函数中的操作是正确的
add_action( 'wp_ajax_my_action', 'my_action' );
add_action( 'wp_ajax_nopriv_my_action', 'my_action' );
function my_action() {
$product_id = $_POST['product_id'];
echo $product_id;
wp_die(); // this is required to terminate immediately and return a proper response
}