admin-ajax.phpにいくつかのajax呼び出しを行うプラグインをカスタマイズしました。私は別のサイトへの上のコードをコピーしていないし、それはもはやログインしていないユーザーのために働くWordpress admin-ajaxはエラー302リダイレクトを返します
放火犯から:。
POST http://<subdomain>.<server>/wp-admin/admin-ajax.php 302 Moved Temporarily 1.08s
GET http://<subdomain>.<server>/ 200 OK
編集:質問はテーマはおそらくリダイレクトするために何ができるかでありますajaxリクエスト。プラグインは、2つのフックました:
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
彼らは両方のほとんどのサイト上で正常に動作しますが、一つのテーマは、非何とかログインユーザーからの要求をリダイレクトします。これらのアクションはプラグインに固有のものなので、どこから探し始めるのかは迷っています。
SOLUTION:add_action('init'
ソリューションのRonald Huerecaからビッグおかげで、問題のリダイレクトが管理エリアを保護するための試みで、中にフックたところ「正確だという。今私は、テーマの管理領域を妥協しない安全な修正を見つける必要があるだけでなく、他のプラグインがユーザーに匿名のAjaxリクエストを作成することを許しているとは思わない。
// 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
申し訳ありませんが、問題はちょうど私がadmin-ajaxにajaxリクエストをリダイレクトできるかどうかわかりません。phpアクションは自分のもので、うまく動作するので、リダイレクトを引き起こす場所はどこにあるのでしょうか? – Sinetheta
無視してください(コメントを削除しないでください;( –