Benutzer von Admin wegweisen bricht Ajax

Ich habe versucht, eine einfache Weiterleitung für einige Benutzer zu machen Ich möchte nicht auf den wp-admin / zugreifen, also habe ich diesen Code gemacht:

function no_admin_access() { if ( !current_user_can( 'delete_posts' ) ) { wp_redirect( site_url( '/' ) ); exit; } } add_action('admin_init', 'no_admin_access'); 

Aber wenn ich dann versuche, mit diesen Benutzern eine Ajax-Anfrage zu machen, wird das auch umgeleitet, so dass ich nie zu admin-ajax.php komme

Wer arbeitet dafür gut?

Vielen Dank.

AJAX-Code

 $.ajax({ type: 'POST', url: MyAjax.ajaxurl, data: { action: 'mux_ajax_delete_pix', pid: $this.attr('data-id') }, success: function(){ $this.parent().fadeOut(); } }); 

Solutions Collecting From Web of "Benutzer von Admin wegweisen bricht Ajax"

Sie können und überprüfen Sie die DOING_AJAX Konstante, die auf einem Ajax in Ihrer bedingten Prüfung definiert ist:

 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' );