Cum să eliminați elementele din meniul de administrare WordPress în mod programatic fără plugin
Publicat: 2020-01-20Meniurile tabloului de bord WordPress sunt o modalitate foarte utilă de a ocoli diferitele secțiuni ale tabloului de bord administrativ, dar uneori pot fi o pacoste sau nedorite. În special, atunci când utilizați WordPress ca sistem de gestionare a conținutului pentru crearea unui site web client, spre deosebire de blogging, trebuie să eliminați elementele din meniul de administrare WordPress care nu sunt necesare.
Una dintre cele mai ușoare modalități de a elimina elementele din meniul de administrare WordPress este utilizarea pluginurilor disponibile gratuit care pot ascunde elementele din meniul de administrator în funcție de rolul utilizatorului sau în mod condiționat.
Când să nu eliminați elementele din meniul de administrare WordPress folosind un plugin
Dezavantajele utilizării pluginurilor pentru a elimina elementele din meniul de administrare WordPress pot fi dependența excesivă de dezvoltatorii de pluginuri terți pentru actualizări consistente.
Risc pentru pluginuri terțe
În acest caz, când doriți să preluați controlul asupra meniurilor afișate în tabloul de bord WordPress fără a utiliza un plugin, acest tutorial este cel mai bun ghid pentru dvs.
Actualizări constante
Un alt motiv pentru a elimina în mod programatic elementele din meniul de administrare WordPress sunt actualizările constante pe care le aveți în toate pluginurile WordPress pe care le instalați.
Aceste actualizări sunt importante, deoarece îmbunătățesc experiența utilizatorului, performanța și securitatea, dar pot fi prea greoaie, mai ales atunci când aveți de-a face cu un număr mare de site-uri web ale clienților.
Mai multe meniuri de administrare a pluginurilor
Când aveți atât de multe pluginuri instalate pe site-ul dvs., majoritatea vin cu meniuri de administrare și poate doriți să eliminați meniurile, deoarece nu utilizați în mod constant meniurile de administrare.
În această postare, voi ilustra cum să eliminați elementele din meniul WordPress fără a utiliza un plugin. Pentru a implementa acest lucru pe site-ul dvs. WordPress, aveți nevoie de puțină experiență în editarea site-urilor WordPress, în special în adăugarea de fragmente de cod în fișierul temă functions.php.
Eliminați elementele din meniul Admin WordPress în mod programatic
Îmi place să încep cu un rezumat rapid, deoarece facilitează cititorii care caută o soluție rapidă într-un ghid pas cu pas. Următorii sunt pașii pe care ar trebui să îi urmați pentru a elimina elementele din meniul de administrare WordPress.
- Conectați-vă la site-ul dvs. WordPress și identificați elementele din meniul de administrator pe care doriți să le eliminați
- Creați un cârlig de acțiune care se conectează la evenimentul admin_menu cu o funcție de apel invers care are logica de a elimina meniurile de administrare WordPress din tabloul de bord.
- Funcția de apel invers ar trebui să utilizeze funcțiile WordPress remove_menu_page sau remove_submenu_page() pentru a elimina fiecare dintre elementele meniului de administrator vizate. De exemplu, puteți elimina meniul widget-uri din meniul teme folosind acest cod
remove_submenu_page( 'themes.php', 'widgets.php');
sau eliminați meniul principal al tabloului de bord cu acest cod –remove_menu_page('index.php');
- Alternativ, puteți utiliza funcția
unset()
php și puteți accesa valorile matricei globale de submeniu pentru a elimina fiecare dintre elementele meniului de administrare WordPress vizate. - Adăugați acest fragment de cod la tema functions.php și actualizați modificările. Acest lucru va elimina cu succes elementele din meniul de administrare WordPress fără a utiliza un plugin.
- De asemenea, puteți adăuga acest cod la o funcție din pluginul dvs. personalizat și va funcționa așa cum funcționează în tema functions.php
Cum să eliminați meniurile de administrare WordPress fără plugin
Următoarea este abordarea detaliată pas cu pas pentru eliminarea elementelor din meniul de administrare WordPress prin adăugarea de cod în loc de a utiliza un alt plugin.
Identificați elementele din meniul de administrator Slug
Conectați-vă la tabloul de bord WordPress și verificați elementele din meniul de administrator pe care doriți să le eliminați. După cum puteți vedea în acest exemplu, meniul principal al tabloului de bord are slug index.php .
Acest slug este important, deoarece este unul dintre parametrii pe care îi adăugați la funcția remove_submenu_page(), așa cum voi ilustra în scurt timp.
Înțelegeți cum să eliminați pagina și să eliminați submeniul Funcțiile paginii
Eliminare funcție de pagină
Funcția remove_menu_page vine cu un singur parametru, care este pagina slug și elimină meniul de administrare de nivel superior. Parametrul este un șir, deoarece este pagina slug care este evident un șir și codul general ar trebui să fie după cum urmează:
remove_menu_page( șir;$menu_slug;)
Eliminați funcția de subpagină
Funcția remove_submenu_page vine cu doi parametri, primul care este slug-ul meniului părinte atunci când eliminați submeniurile și al doilea slug-ul submeniului pe care doriți să îl eliminați. Codul general ar trebui să fie după cum urmează:
remove_submenu_page( șir $menu_slug, șir $submenu_slug )
Creați un cârlig de acțiune pentru a elimina elementele din meniul de administrare și/sau submeniul
Următorul este un exemplu de cârlig de acțiune care se conectează la evenimentul admin_menu și are o funcție de apel invers pe care am numit-o „ remove_admin_menu_items”
add_action( 'admin_menu', 'remove_admin_menu_items', 999);
Creați funcția de apel invers pentru a elimina meniul de administrare și/sau elementele de submeniu cu remove_submenu_page și remove_menu_page ()
În primul rând, în funcția de apel invers, trebuie să obțineți matricea meniurilor globale cu variabila globală $submeniu dacă veți folosi funcția unset() .
În al doilea rând, adăugați funcția remove_submenu_page sau remove_menu_page () care vizează pagina pe care doriți să o eliminați, așa cum se arată în codul de mai jos:
funcția remove_admin_menu_items() { remove_submenu_page( 'menu_slug', 'submeniu_slug'); }
Sau folosind unset puteți avea următoarea funcție de apel invers
funcția remove_admin_menu_items() { global $submeniu; unset($submeniu['parent menu slug'][admin item submeniu array index]); }
Exemplu despre cum să eliminați elementul din meniul de administrator al actualizărilor
Când vă conectați la tabloul de bord WordPress, există un element de meniu despre actualizările care se află sub meniul tabloului de bord principal, așa cum se arată în imaginea de mai jos:
Voi ilustra cum puteți elimina acest element de meniu admin folosind metoda discutată mai sus. În primul rând, slug-ul meniului părinte este index.php , iar slug-ul pentru meniul actualizări este update-core.php
Eliminați elementul de meniu Admin WordPress părinte și submeniul
Deci, puteți crea acțiunea cârlig și funcția de apel invers pentru a elimina întregul element de meniu folosind funcția remove_menu_page() după cum urmează:
// Eliminați elementul din meniul principal împreună cu subpaginile /submeniurile add_action( 'admin_menu', 'remove_admin_menu_items', 999); funcția remove_admin_menu_items() { remove_menu_page('index.php'); }
Aceasta va elimina întregul meniu și submeniurile, așa cum se arată în imaginea de mai jos:
Eliminați numai elementele din submeniul WordPress
Puteți crea acțiunea cârlig și funcția de apel invers pentru a elimina elementul din submeniu folosind funcția remove_submenu_page , după cum urmează:
//Elimină subpaginile sau submeniul add_action( 'admin_menu', 'remove_admin_menu_items', 999); funcția remove_admin_menu_items() { remove_submenu_page('index.php','update-core.php'); }
Acest lucru va elimina submeniul specificat în al doilea parametru al funcției remove_submenu_page, în acest caz, am specificat ca „ actualizare-core.php”, iar rezultatul este așa cum se arată în imaginea de mai jos:
Folosind Funcția PHP Unset().
De asemenea, putem folosi funcția de dezactivare a PHP pentru a elimina elementele din submeniu și, în acest caz, trebuie să accesăm mai întâi matricea globală $submeniu așa cum se arată în codul de mai jos:
//adăugați cârligul de acțiune la evenimentul admin_menu add_action( 'admin_menu', 'remove_admin_menu_items', 999); //funcția de apel invers funcția remove_admin_menu_items() { //Matrice de meniu Admin->Lista cu toate elementele din meniul de administrare WordPress sunt în această matrice global $submeniu; //tipărește matricea pe ecran, astfel încât să putem vedea elementele din meniul admin după index print('<pre>'); print_r($submeniu); print('<pre>'); // eliminăm tot ce este afișat pe ecran, astfel încât să vedem doar matricea de elemente din meniul de administrare a muri(); }
Acest cod preia matricea globală de submeniu și o tipărim pentru a afișa matricea tuturor meniurilor, astfel încât să putem alege indexul fiecăruia dintre elementele de meniu admin și apoi să le eliminam după cum dorim.
În acest cod, puteți vedea utilizarea etichetelor pre și a funcției die() pentru a afișa codul într-un format lizibil.
Eliminați elementul din meniu din submeniul WordPress folosind Unset
Deci indexul matricei pentru submeniul de bază de actualizare este 10 . Deci putem merge mai departe și folosim funcția unset() după cum urmează:
// Eliminați elementul din meniul principal împreună cu subpaginile folosind unset add_action( 'admin_menu', 'remove_admin_menu_items', 999); funcția remove_admin_menu_items() { global $submeniu; unset($submeniu['index.php'][0]); //eliminați meniul de nivel superior index.php (meniul tabloului de bord - meniul Acasă) unset($submeniu['index.php'][10]); // elimină submeniul update-core.php (meniul actualizări) }
Rezultatele vor fi aceleași cu utilizarea funcției WordPress remove_submenu_page.
Eliminați elementul WordPress Admin Menu folosind Unset
De asemenea, putem elimina pagina de nivel superior și submeniul împreună, folosind funcția de dezactivare care vizează fiecare dintre aceste pagini:
Codul ar trebui să fie după cum urmează:
//. Eliminați elementul principal din submeniul folosind unset add_action( 'admin_menu', 'remove_admin_menu_items', 999); funcția remove_admin_menu_items() { global $submeniu; unset($submeniu['index.php'][10]); }
Rezultatul va fi eliminarea uneia dintre pagini, deoarece am dezactivat codul:
Încheierea
În această postare, am acoperit pe larg cele două modalități principale pe care le puteți utiliza pentru a elimina elementele din meniul de administrare WordPress și vă curățați tabloul de bord WordPress. Dacă sunteți un dezvoltator WordPress, puteți reutiliza acest cod și îl puteți copia cu ușurință, verificați esenta mea și mă puteți urmări pe GitHub pentru mai multe actualizări viitoare. Am distribuit și alte câteva fragmente aici – WP-Snippets . Sper că acum puteți elimina acele elemente de administrator WordPress pe care nu le doriți din meniul dvs.