Come rimuovere le voci del menu di amministrazione di WordPress in modo programmatico senza plug-in

Pubblicato: 2020-01-20

Come rimuovere le voci del menu di amministrazione di WordPress in modo programmatico I menu della dashboard di WordPress sono un modo molto utile per aggirare le diverse sezioni della dashboard di amministrazione, ma a volte possono essere fastidiosi o indesiderati. In particolare, quando si utilizza WordPress come sistema di gestione dei contenuti per la creazione di un sito Web client in contrapposizione al blog, è necessario rimuovere le voci del menu di amministrazione di WordPress che non sono necessarie.

Uno dei modi più semplici per rimuovere le voci del menu di amministrazione di WordPress è utilizzare i plug-in disponibili gratuitamente che possono nascondere le voci del menu di amministrazione in base al ruolo dell'utente o in modo condizionale.

Quando non rimuovere le voci del menu di amministrazione di WordPress utilizzando un plug-in

Gli svantaggi dell'utilizzo dei plug-in per rimuovere le voci del menu di amministrazione di WordPress potrebbero dipendere eccessivamente dagli sviluppatori di plug-in di terze parti per aggiornamenti coerenti.

Rischio di plug-in di terze parti

In questo caso, quando vuoi assumere il controllo di quali menu vengono visualizzati nella dashboard di WordPress senza utilizzare un plug-in, questo tutorial è la guida migliore per te.

Aggiornamenti costanti

Un altro motivo per rimuovere le voci del menu di amministrazione di WordPress in modo programmatico sono gli aggiornamenti costanti che hai in tutti i plugin di WordPress che installi.

Questi aggiornamenti sono importanti poiché migliorano l'esperienza utente, le prestazioni e la sicurezza, ma possono essere troppo ingombranti soprattutto quando si ha a che fare con un gran numero di siti Web di clienti.

Diversi menu di amministrazione dei plugin

Quando hai così tanti plugin installati sul tuo sito, la maggior parte viene fornita con menu di amministrazione e potresti voler rimuovere i menu poiché non usi costantemente i menu di amministrazione.

In questo post, illustrerò come rimuovere le voci di menu di WordPress senza utilizzare un plug-in. Per poterlo implementare nel tuo sito WordPress, hai bisogno di un po' di esperienza nella modifica di siti WordPress, in particolare aggiungendo frammenti di codice al file del tema functions.php.

Rimuovere le voci del menu di amministrazione di WordPress in modo programmatico

Mi piace iniziare con un breve riassunto poiché rende più facile per i lettori che cercano una soluzione rapida in una guida passo passo. Di seguito sono riportati i passaggi da eseguire per rimuovere le voci del menu di amministrazione di WordPress.

  1. Accedi al tuo sito WordPress e identifica le voci del menu di amministrazione che desideri rimuovere
  2. Crea un action hook che si aggancia all'evento admin_menu con una funzione di callback che ha la logica per rimuovere i menu di amministrazione di WordPress dalla dashboard.
  3. La funzione di callback dovrebbe utilizzare le funzioni remove_menu_page o remove_submenu_page() di WordPress per rimuovere ciascuna delle voci del menu di amministrazione mirate. Ad esempio, puoi rimuovere il menu dei widget dal menu dei temi usando questo codice remove_submenu_page( 'themes.php', 'widgets.php'); oppure rimuovi il menu principale della dashboard con questo codice – remove_menu_page('index.php');
  4. In alternativa, puoi utilizzare la funzione php unset() e accedere ai valori dell'array di sottomenu globale per rimuovere ciascuna delle voci del menu di amministrazione di WordPress mirate.
  5. Aggiungi questo frammento di codice al tema functions.php e aggiorna le modifiche. Ciò rimuoverà correttamente le voci del menu di amministrazione di WordPress senza utilizzare un plug-in.
  6. Puoi anche aggiungere questo codice a una funzione nel tuo plug-in personalizzato e funzionerà come funziona nel tema functions.php

Come rimuovere i menu di amministrazione di WordPress senza plug-in

Di seguito è riportato l'approccio dettagliato passo dopo passo alla rimozione delle voci del menu di amministrazione di WordPress aggiungendo codice invece di utilizzare un altro plug-in.

Identifica le voci del menu amministratore Slug

Accedi alla dashboard di WordPress e controlla le voci del menu di amministrazione che desideri rimuovere. Come puoi vedere in questo esempio, il menu principale della dashboard ha lo slug index.php .

Questo slug è importante poiché è uno dei parametri che aggiungi alla funzione remove_submenu_page(), come illustrerò tra breve.

rimuovi il menu di amministrazione di wordpress

Scopri come rimuovere la pagina e rimuovere le funzioni della pagina del sottomenu

Rimuovi funzione pagina

La funzione remove_menu_page viene fornita con un solo parametro che è lo slug della pagina e rimuove il menu di amministrazione di primo livello. Il parametro è una stringa poiché è lo slug della pagina che è ovviamente una stringa e il codice generale dovrebbe essere il seguente:

 remove_menu_page( string;$menu_slug;)

Rimuovi funzione sottopagina

La funzione remove_submenu_page viene fornita con due parametri il primo che è lo slug del menu principale quando si rimuovono i sottomenu e il secondo dello slug del sottomenu che si desidera rimuovere. Il codice generale dovrebbe essere il seguente:

 remove_submenu_page (stringa $menu_slug, stringa $submenu_slug )

Crea un hook di azione per rimuovere il menu amministratore e/o le voci del sottomenu

Quello che segue è un esempio di un action hook che si aggancia all'evento admin_menu e ha una funzione di callback che abbiamo chiamato ' remove_admin_menu_items'

 add_action( 'menu_admin', 'remove_admin_menu_items', 999 );

Crea la funzione di richiamata per rimuovere il menu amministratore e/o le voci del sottomenu con remove_submenu_page e remove_menu_page ()

Innanzitutto, nella funzione di callback, è necessario ottenere l'array dei menu globali con la variabile globale $submenu se si utilizzerà la funzione unset() .

In secondo luogo, aggiungi la funzione remove_submenu_page o remove_menu_page () indirizzata alla pagina che desideri rimuovere come mostrato nel codice seguente:

 funzione remove_admin_menu_items() {        

    remove_submenu_page( 'menu_slug', 'submenu_slug'); 

}

Oppure usando unset puoi avere la seguente funzione di callback

 funzione remove_admin_menu_items() {

        $sottomenu globale; 

       unset($submenu['parent menu slug'][indice dell'array del sottomenu voce di amministrazione]);

 }

Esempio su come rimuovere la voce di menu amministratore degli aggiornamenti

Quando accedi alla dashboard di WordPress c'è una voce di menu sugli aggiornamenti che si trovano sotto il menu principale della dashboard, come mostrato nell'immagine qui sotto:

rimuovi il menu di amministrazione di wordpress

Illustrerò come rimuovere questa voce di menu di amministrazione utilizzando il metodo discusso sopra. Innanzitutto, lo slug del menu principale è index.php e lo slug per il menu degli aggiornamenti è update-core.php

Rimuovi la voce del menu di amministrazione di WordPress padre e sottomenu

Quindi puoi creare la funzione hook e callback dell'azione per rimuovere l'intera voce di menu usando la funzione remove_menu_page() come segue:

 // Rimuove la voce del menu principale insieme alle sottopagine /sottomenu

add_action( 'menu_admin', 'remove_admin_menu_items', 999 );

 funzione remove_admin_menu_items() {

    remove_menu_page('index.php');


 }

Questo rimuoverà l'intero menu e i sottomenu come mostrato nell'immagine seguente:

Rimuovi solo gli elementi del sottomenu di WordPress

Rimuovi solo gli elementi del sottomenu di WordPress

È possibile creare la funzione hook e callback dell'azione per rimuovere la voce di sottomenu utilizzando la funzione remove_submenu_page come segue:

 //Rimuove le sottopagine o il sottomenu

add_action( 'menu_admin', 'remove_admin_menu_items', 999 );

funzione remove_admin_menu_items() {

    remove_submenu_page('index.php','update-core.php' );

}

Questo rimuoverà il sottomenu specificato nel secondo parametro della funzione remove_submenu_page, in questo caso, abbiamo specificato come ' update-core.php' e il risultato è come mostrato nell'immagine seguente:

Utilizzo della funzione Unset() PHP

Possiamo anche usare la funzione unset di PHP per rimuovere le voci del sottomenu e in questo caso, dobbiamo prima accedere all'array globale $submenu come mostrato nel codice seguente:

 //aggiungi l'action hook all'evento admin_menu

add_action( 'menu_admin', 'remove_admin_menu_items', 999 );

//funzione di richiamata
funzione remove_admin_menu_items() {

    //Matrice del menu di amministrazione->L'elenco di tutte le voci del menu di amministrazione di WordPress si trova in questa matrice
    $sottomenu globale;

    //stampa l'array sullo schermo in modo che possiamo vedere le voci del menu di amministrazione per indice
    
     print('<pre>');
     print_r($sottomenu);
     print('<pre>');

      // rimuoviamo tutto il resto visualizzato sullo schermo in modo che veda solo l'array delle voci del menu di amministrazione
      morire();

}

Questo codice ottiene l'array di sottomenu globale e lo stampiamo per visualizzare l'array di tutti i menu in modo da poter selezionare l'indice di ciascuna delle voci del menu di amministrazione e rimuoverle come desideriamo.

In questo codice, puoi vedere l'uso della funzione pre tags e die() per visualizzare il codice in un formato leggibile.

Utilizzo della funzione Unset() PHP wordpress

Rimuovi la voce di menu del sottomenu di WordPress usando Annulla impostazione

Quindi l'indice dell'array per il sottomenu update-core è 10 . Quindi possiamo andare avanti e usare la funzione unset() come segue:

 // Rimuove la voce del menu principale insieme alle sottopagine usando unset

add_action( 'menu_admin', 'remove_admin_menu_items', 999 );

funzione remove_admin_menu_items() {

    $sottomenu globale;

       unset($sottomenu['index.php'][0]); //rimuove il menu di primo livello index.php (menu dashboard - Menu Home)
      unset($sottomenu['index.php'][10]); // rimuove il sottomenu update-core.php (menu aggiornamenti)


}

I risultati saranno gli stessi dell'utilizzo della funzione di WordPress remove_submenu_page.

Rimuovere la voce del menu di amministrazione di WordPress utilizzando Annulla impostazione

Possiamo anche rimuovere la pagina di primo livello e il sottomenu tutti insieme usando la funzione unset mirata a ciascuna di queste pagine:

Rimuovere la voce del menu di amministrazione di WordPress utilizzando Annulla impostazione

Il codice dovrebbe essere il seguente:

 //. Rimuovere la voce del sottomenu principale utilizzando unset

add_action( 'menu_admin', 'remove_admin_menu_items', 999 );

funzione remove_admin_menu_items() {

   $sottomenu globale;

   unset($sottomenu['index.php'][10]);


}

Il risultato sarà la rimozione di una delle pagine poiché non abbiamo impostato nel codice:

Come rimuovere le voci del menu di amministrazione di WordPress in modo programmatico senza plug-in

Avvolgendo

In questo post, abbiamo ampiamente trattato i due modi principali che puoi utilizzare per rimuovere le voci del menu di amministrazione di WordPress e ripulire la dashboard di WordPress. Se sei uno sviluppatore WordPress, puoi riutilizzare questo codice e copiarlo facilmente controlla il mio succo e puoi seguirmi su GitHub per ulteriori aggiornamenti futuri. Ho anche condiviso molti altri frammenti qui: WP-Snippets . Spero che ora tu possa rimuovere gli elementi di amministrazione di WordPress che non desideri dal tuo menu.