【问题标题】:Admin-ajax.php 302 error WordpressAdmin-ajax.php 302 错误 Wordpress
【发布时间】:2026-01-03 13:10:01
【问题描述】:

我有一个 Wordpress 网站和两种用户。管理员和订阅者。如果订阅者尝试访问 wp-admin 区域,我希望他重定向到该站点的主页。我有一个功能可以做到这一点,但是当我尝试访问网站上的不同页面时,例如在某处发表评论时,它会将主页加载到我当前所在的页面内,并且不会发布评论和任何其他操作我愿意。从网络错误我看到 admin-ajax.php 302 错误。我知道 Wordpress 对 ajax 使用了两种不同的钩子,一种用于管理端,另一种用于注销用户,这与我的问题有关,但我不明白如何解决它。

function mt_redirect_admin(){

if ( ! current_user_can( 'edit_events' ) ){
    wp_redirect( site_url() );
    exit;       
}
}
add_action( 'admin_init', 'mt_redirect_admin' );

提前感谢您的任何回答

【问题讨论】:

    标签: php jquery ajax wordpress conflict


    【解决方案1】:

    已解决:

    function mt_redirect_admin() {
    
    if ( ! current_user_can( 'edit_events' ) && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) ) {
        wp_redirect( site_url() ); 
        exit;
    }
    }
    
    add_action( 'admin_init', 'mt_redirect_admin', 1 );
    

    【讨论】: