Stai cercando un modo per reindirizzare le pagine di amministrazione in qualsiasi posizione? Sebbene esista probabilmente un plugin per questo, abbiamo creato un rapido snippet di codice che puoi utilizzare per reindirizzare le pagine di amministrazione in qualsiasi posizione in WordPress.
Lo snippet seguente ti consentirà di reindirizzare qualsiasi pagina di amministrazione in qualsiasi posizione desideri in base alle capacità dell'utente. Un'altra opzione sarebbe sostituire wp_redirect con wp_die("messaggio personalizzato"); per visualizzare un messaggio anziché reindirizzare.
Istruzioni:
Tutto quello che devi fare è aggiungere questo codice al file functions.php del tuo tema o in un plugin specifico per il sito:
function wpsnipp_admin_pages_redirect() {
global $pagenow;
$admin_pages = array(
'edit-tags.php',
'edit-tags.php',
'link-manager.php',
'options-writing.php',
'options-reading.php',
'options-discussion.php',
'options-media.php',
'options-privacy.php',
'options-permalink.php',
);
if(in_array($pagenow, $admin_pages)){
wp_redirect( admin_url('/') ); exit;
}
}
if(!current_user_can('edit_post')){
add_action('admin_init', 'wpsnipp_admin_pages_redirect');
}
Nota: Se questa è la prima volta che aggiungi snippet di codice in WordPress, consulta la nostra guida su come copiare / incollare correttamente snippet di codice in WordPress, in modo da non rompere accidentalmente il tuo sito.
Se ti è piaciuto questo snippet di codice, prendi in considerazione la lettura dei nostri altri articoli sul sito come: 15 migliori strumenti di content marketing e come creare un modulo di contatto in WordPress.
Cosa succede se vuoi reindirizzare un URL come questo? admin.php?page=account_page
Potrebbe essere necessario controllare anche il valore di $_GET['page'].
Non puoi usare current_user_can() quando sei nello scope globale, all'interno di un plugin perché causerà Fatal error: Call to undefined function wp_get_current_user().