programing

Ajax in Wordpress 플러그인

goodsources 2023. 10. 13. 22:04
반응형

Ajax in Wordpress 플러그인

간단한 워드프레스 플러그인을 만들고 AJAX를 사용하려고 하는데 항상 AJAX 응답에서 0이 나옵니다.

<script type="text/javascript" >
jQuery(document).ready(function($) {

var data = {
    action: 'my_action',
    whatever: '1234'
};


jQuery.post("http://localhost/taichi/wp-admin/admin-ajax.php", data,   function(response) {
    alert(response);
});
});
 </script>
<?php
add_action('wp_ajax_my_action', 'my_action_callback');
add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' ); 




function my_action_callback() {

echo "test";
die();

}

내가 뭘 잘못하고 있는 거지?

add_action을 파일의 전체 하단에 배치하지 않으면 콜백 기능을 찾을 수 없습니다.

변경 시도:

jQuery.post("http://localhost/taichi/wp-admin/admin-ajax.php", data,   function(response)

받는 사람:

jQuery.post(ajaxurl, data, function(response) 

그리고 관리자 쪽에서 먼저 작동하는지 확인해보세요.잘 될 겁니다.

오류 반환 값

요청 URL이 wp-admin/admin-ajax.php일 때 AJAX 요청이 실패하면 다음 중 하나를 반환합니다.-1 or 0그것이 실패한 이유에 따라

이 글을

편집

admin-ajax는 항상 기본값 '0'을 출력으로 반환합니다.그래서 당신이 응답을 경고하는 동안 당신은0 only.사용.die()콜백 함수에서 그것을 종료합니다.

같은 문제가 있었지만, 제 콜백이 제 "테마 옵션" 페이지에만 포함되어 있는 php 파일 안에 있다는 것이 밝혀졌습니다.

함수가 truth admin-ajax.php를 트리거할 수 있는지 확인하려면 다음을 추가합니다.var_dump(function_exists("your_callback_name"));wp-admin/admin-ajax.php(이전)의 맨 아래로die( '0' );) 그런 다음 ax 출력을 확인합니다.

플러그인 파일에서 다음 코드를 사용해 보십시오.또는 작동중입니다.


    
jQuery(문서).ready(기능 ($){여러 가지 아약스URL = 'http://localhost/taichi/wp-admin/admin-ajax.php';vardataString = 'action=mnd_news';달러.유형: "POST",url: jaxURL,데이터: dataString,캐시: false,성공: 함수(응답){if(response != 'error') {경보(응답);}}});});    
add_action (' wp_ajax_mnd_news', 'get_mnd_ajax');add_action( 'wp_ajax_nopriv_mnd_news','get_mnd_ajax' );함수 get_mnd_ajax() {에코 "테스트";()로 죽습니다.}

언급URL : https://stackoverflow.com/questions/6659176/ajax-in-wordpress-plugin

반응형