Erstellen Sie eine WordPress-Seite, die nur für Administratoren zugänglich ist, und leiten Sie andere Benutzerrollen um

Ich muss angemeldete Benutzer und Benutzer ohne Administratorrechte von der Seite mit der ID 172 zur Startseite der Website redirect. Beachten Sie, dass Benutzer, die nicht angemeldet sind, die Seite tatsächlich sehen können.

add_action('admin_init', 'xyz'); function xyz() { if( is_page( 172 ) ) { if( is_user_logged_in() && ! current_user_can('update_core') ) { wp_redirect( home_url() ); exit; } } } 

Problem: Dieser Code funktioniert nicht.

Solutions Collecting From Web of "Erstellen Sie eine WordPress-Seite, die nur für Administratoren zugänglich ist, und leiten Sie andere Benutzerrollen um"

admin_init läuft auf Admin-Seiten, nicht am Frontend. Die entsprechende Front-End-Aktion init ist zu früh, um is_page zu überprüfen. Eine sichere Aktion für die Umleitung ist template_redirect :

 function xyz() { if( is_page( 172 ) && ! current_user_can('update_core') ) { wp_redirect( home_url() ); exit; } } add_action( 'template_redirect', 'xyz' );