admin-ajax.php에 대한 일부 아약스 호출을 만들기 위해 플러그인을 사용자 정의했으며 훌륭하게 작동합니다. 내가 다른 사이트를 통해 코드를 복사하여 더 이상 로그인하지 않은 사용자를 위해 작동 불을 지르고에서Wordpress admin-ajax가 302 리디렉션 오류를 발생합니다.
:.
POST http://<subdomain>.<server>/wp-admin/admin-ajax.php 302 Moved Temporarily 1.08s
GET http://<subdomain>.<server>/ 200 OK
편집 : 문제는 테마가 가능하게 리디렉션 할 수있는 것입니다 아약스 요청. 플러그인은 두 개의 후크가 : 그들은 모두 대부분의 사이트에서 잘 작동
add_action('wp_ajax_em_ajax_getEvents', 'em_ajax_getEvents'); // ajax for logged in users
add_action('wp_ajax_nopriv_em_ajax_getEvents', 'em_ajax_getEvents'); // ajax for not logged in users
을하지만, 하나 개의 주제는 어떻게 든 로그인 한 사용자 이외의 요청을 리디렉션합니다. 이러한 작업은 플러그인에 고유하므로 어디서부터 시작해야 할지를 놓치고 있습니다.
해결 방법 : add_action('init'
솔루션 Ronald Huereca- 큰 덕분에, 잘못된 리디렉션 관리자 영역을 보호하기위한 시도에서 후킹 된 곳 '정확히 있음. 이제는 테마의 관리 영역을 손상시키지 않고 사용자가 익명의 아약스 요청을 할 수 없게하는 다른 플러그인을 저지하지 않는 안전한 수정을 찾아야합니다.
// stop users accessing the admin
add_action('init', array($this, 'prevent_admin_access'), 0);
function prevent_admin_access() {
if (strpos(strtolower($_SERVER['REQUEST_URI']), '/wp-admin') !== false) {
$current_user = wp_get_current_user();
if(!user_can($current_user->ID, 'administrator') && (!user_can($current_user->ID, 'contributor'))){
wp_redirect(get_option('siteurl'));
}
}
}
문제는 문제에 관해서 아무 말도하지 않습니다. 정교한. – ThinkingMonkey
죄송합니다. 문제는 단지 ajax 요청을 admin-ajax로 리디렉션 할 수 있는지 전혀 모르는 것입니다.PHP는 액션이 내 자신이고, 잘 작동하므로 리다이렉트를 유발할 수있는 곳은 어디일까요? – Sinetheta
제발 무시해주세요 (코멘트를 삭제하지 마십시오; ( –