답변:
"안전하고 깔끔한"방법은 워드 프레스와 함께 제공되는 admin-ajax.php를 사용 wp_ajax
하여 플러그인 파일에서 처리 기능을 호출하고 wp-nonce를 사용하여 호출의 무결성을 확인하는 것입니다.
예를 들면 다음과 같습니다.
귀하의 아약스 JQuery 호출은
<script type="text/javascript" >
jQuery(document).ready(function($) {
var data = {
action: 'ACTION_NAME',
Whatever: '1234',
_ajax_nonce: '<?php echo wp_create_nonce( 'my_ajax_nonce' ); ?>'
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
// If you need it on a public facing page, uncomment the following line:
// var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>';
jQuery.post(ajaxurl, data, function(response) {
alert('Got this from the server: ' + response);
});
});
</script>
그런 다음 플러그인 파일에
//if you want only logged in users to access this function use this hook
add_action('wp_ajax_ACTION_NAME', 'my_AJAX_processing_function');
//if you want none logged in users to access this function use this hook
add_action('wp_ajax_nopriv_ACTION_NAME', 'my_AJAX_processing_function');
* 로그인 한 사용자 및 게스트가 ajax로 기능에 액세스하도록하려면 두 후크를 모두 추가하십시오. * ACTION_NAME 은 ajax POST의 조치 값과 일치해야합니다.
그런 다음 함수에서 요청이 유효한 소스에서 온 것인지 확인하십시오.
function my_AJAX_processing_function(){
check_ajax_referer('my_ajax_nonce');
//do stuff here...
}
도움이 되었기를 바랍니다