2014-04-23 2 views
1

도움을 받으실 수 있으면 좋겠습니다. functions.php에서 다음 코드는 내가 찾을 수있는 일반적인 오류가 포함되지 않은 0Wordpress Ajax returned 0

function removeItems(){ 
echo "hello"; 
die(); 
} 

add_action('wp_ajax_removeItem', 'removeItems'); 
add_action('wp_ajax_nopriv_removeItem', 'removeItems'); 

function remove_item(){ 
    echo '<script type="text/javascript"> 
    jQuery(document).ready(function(){ 
     jQuery("body").delegate(".remove_one","click",function(){ 
      var cart_key = jQuery(this).data("cart_key"); 
      jQuery.ajax({ 
       type:"POST", 
       url: "/wp-admin/admin-ajax.php", 
       data: {action: "removeItem"}, 
       success:function(data){ 
        alert(data); 
       } 
      }); 
     }); 
    }); 
</script>'; 
} 

add_action('wp_head', 'remove_item'); 

을 반환 :

add_action('wp_ajax_nopriv_removeItem', 'removeItems'); 

을 ...하지만 내가 추가 한 점에서

.
action=removeItem 

이 콘솔에 추가됩니다.

도움을 주시면 감사하겠습니다. 마크

답변

1

조치가 지정되지 않으면 admin-ajax.php가 종료되고 프로세스에서 0을 리턴합니다. 즉, 프론트 엔드가 Wordpress에서 인식하지 못하는 작업을 시작했음을 의미합니다. Wordpress에서 귀하의 wp_ajax_xxx 작업을 찾을 수 없습니다. 이 작업을 지정했을 수 있지만이 파일을 불러 와서 호출해야합니다.

요약 :

은 플러그인 파일/테마에서
add_action('wp_ajax_removeItems', 'removeItems'); 
function removeItems() {  
     ...;  
     echo json_encode($array);  
} 
파일로드 기억
  1. 이 전면에서 호출 끝
(function($){ 
var ret  = true, 
    ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>', 
    data = { 
    'action': 'removeItems', 
    }; 

$.post(ajaxurl, data, function(response) { 
    console.log(response); 
    }); 
})(jQuery);