반응형
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
반응형
'programing' 카테고리의 다른 글
DBMS_METadata를 사용하여 스키마 이름이 없는 개체에 대한 DDL 스크립트를 생성하는 중입니다.GET_DDL? (0) | 2023.10.13 |
---|---|
wocommerce_checkout_update_customer_data 사용 안 함 (0) | 2023.10.13 |
jQuery에서 드롭다운 값 가져오기 (0) | 2023.10.13 |
입력 요소에 대한 자바스크립트 변경 이벤트는 초점 손실 시에만 발생합니다. (0) | 2023.10.13 |
성능 텍스트/html 대 애플리케이션/json (0) | 2023.10.13 |