尝试对一些用户进行简单重定向,我不想访问wp admin/,因此我执行了以下代码:
function no_admin_access() {
if ( !current_user_can( \'delete_posts\' ) ) {
wp_redirect( site_url( \'/\' ) ); exit;
}
}
add_action(\'admin_init\', \'no_admin_access\');
但是,当我尝试向这些用户发出ajax请求时,该请求也会被重定向,因此我永远无法访问admin ajax。php
有谁对此有很好的解决办法吗?
谢谢
AJAX代码
$.ajax({
type: \'POST\',
url: MyAjax.ajaxurl,
data: {
action: \'mux_ajax_delete_pix\',
pid: $this.attr(\'data-id\')
},
success: function(){
$this.parent().fadeOut();
}
});
最合适的回答,由SO网友:Bainternet 整理而成
您可以和检查DOING_AJAX
在条件检查中在Ajax上定义的常量:
function no_admin_access()
{
if (
// Don\'t do this for AJAX calls
! defined( \'DOING_AJAX\' )
// Capability check
&& ! current_user_can( \'delete_posts\' )
)
{
// Redirect to home/front page
wp_redirect( site_url( \'/\' ) );
// Never ever(!) forget to exit(); or die(); after a redirect
exit;
}
}
add_action( \'admin_init\', \'no_admin_access\' );