Jak programowo usunąć pozycje menu administratora WordPress bez wtyczki?
Opublikowany: 2020-01-20Menu pulpitu WordPress są bardzo przydatnym sposobem na poruszanie się po różnych sekcjach pulpitu administratora, ale czasami mogą być uciążliwe lub niepożądane. W szczególności, gdy używasz WordPressa jako systemu zarządzania treścią do tworzenia witryny klienta, w przeciwieństwie do blogowania, musisz usunąć niepotrzebne elementy menu administratora WordPress.
Jednym z najłatwiejszych sposobów na usunięcie elementów menu administratora WordPress jest użycie darmowych wtyczek, które mogą ukrywać elementy menu administratora według roli użytkownika lub warunkowo.
Kiedy nie usuwać elementów menu administratora WordPress za pomocą wtyczki?
Wady korzystania z wtyczek do usuwania elementów menu administratora WordPress mogą polegać na nadmiernym poleganiu na programach wtyczek innych firm w celu zapewnienia spójnych aktualizacji.
Ryzyko wtyczek innych firm
W takim przypadku, jeśli chcesz przejąć kontrolę nad tym, które menu są wyświetlane na pulpicie nawigacyjnym WordPress bez korzystania z wtyczki, ten samouczek jest dla Ciebie najlepszym przewodnikiem.
Stałe aktualizacje
Innym powodem programowego usuwania elementów menu administratora WordPress są ciągłe aktualizacje wszystkich zainstalowanych wtyczek WordPress.
Te aktualizacje są ważne, ponieważ poprawiają wrażenia użytkownika, wydajność i bezpieczeństwo, ale mogą być zbyt uciążliwe, zwłaszcza gdy masz do czynienia z dużą liczbą witryn klientów.
Kilka menu administratora wtyczek
Kiedy masz tak wiele wtyczek zainstalowanych w swojej witrynie, większość zawiera menu administratora i możesz chcieć usunąć menu, ponieważ nie korzystasz stale z menu administratora.
W tym poście zilustruję, jak usunąć elementy menu WordPress bez użycia wtyczki. Aby zaimplementować to w swojej witrynie WordPress, potrzebujesz niewielkiego doświadczenia w edytowaniu witryn WordPress, zwłaszcza w dodawaniu fragmentów kodu do pliku motywu functions.php.
Programowe usuwanie elementów menu administratora WordPress
Lubię zacząć od krótkiego podsumowania, ponieważ ułatwia to czytelnikom szukającym szybkiego rozwiązania w przewodniku krok po kroku. Poniżej przedstawiono kroki, które należy podjąć, aby usunąć elementy menu administratora WordPress.
- Zaloguj się do swojej witryny WordPress i zidentyfikuj pozycje menu administratora, które chcesz usunąć
- Utwórz zaczep akcji, który przechwytuje zdarzenie admin_menu z funkcją wywołania zwrotnego, która ma logikę usuwania menu administratora WordPress z pulpitu nawigacyjnego.
- Funkcja wywołania zwrotnego powinna używać funkcji WordPress remove_menu_page lub remove_submenu_page(), aby usunąć każdy z docelowych elementów menu administratora. Na przykład możesz usunąć menu widżetów z menu motywów za pomocą tego kodu
remove_submenu_page( 'themes.php', 'widgets.php');
lub usuń menu główne dashboardu za pomocą tego kodu –remove_menu_page('index.php');
- Alternatywnie możesz użyć funkcji php
unset()
i uzyskać dostęp do wartości globalnej tablicy podmenu, aby usunąć każdy z docelowych elementów menu administratora WordPress. - Dodaj ten fragment kodu do motywu functions.php i zaktualizuj zmiany. Spowoduje to pomyślne usunięcie elementów menu administratora WordPress bez użycia wtyczki.
- Możesz także dodać ten kod do funkcji we własnej wtyczce i będzie działać tak, jak w motywie functions.php
Jak usunąć menu administracyjne WordPress bez wtyczki?
Poniżej znajduje się szczegółowe podejście krok po kroku do usuwania elementów menu administratora WordPress poprzez dodawanie kodu zamiast korzystania z innej wtyczki.
Zidentyfikuj elementy menu administratora Slug
Zaloguj się do pulpitu WordPress i sprawdź pozycje menu administratora, które chcesz usunąć. Jak widać w tym przykładzie, główne menu pulpitu nawigacyjnego zawiera plik index.php .
Ten slug jest ważny, ponieważ jest to jeden z parametrów dodawanych do funkcji remove_submenu_page(), co pokrótce zilustruję.
Zrozumieć, jak usunąć stronę i usunąć podmenu funkcje strony
Usuń funkcję strony
Funkcja remove_menu_page zawiera tylko jeden parametr, którym jest informacja o stronie i usuwa menu administratora najwyższego poziomu. Parametr jest ciągiem znaków, ponieważ jest to slug strony, który jest oczywiście ciągiem, a ogólny kod powinien wyglądać następująco:
usuń_stronę_menu( ciąg;$menu_slug;)
Usuń funkcję podstrony
Funkcja remove_submenu_page zawiera dwa parametry, pierwszy, który jest informacją o pracy menu nadrzędnego, gdy usuwasz podmenu, a drugi to komunikat podmenu, które chcesz usunąć. Ogólny kod powinien wyglądać następująco:
remove_submenu_page( ciąg $menu_slug, ciąg $submenu_slug )
Utwórz zaczep akcji, aby usunąć menu administratora i/lub elementy podmenu
Poniżej znajduje się przykład haka akcji, który przechwytuje zdarzenie admin_menu i ma funkcję wywołania zwrotnego, którą nazwaliśmy „ remove_admin_menu_items”
add_action( 'admin_menu', 'remove_admin_menu_items', 999 );
Utwórz funkcję wywołania zwrotnego, aby usunąć menu administratora i/lub pozycje podmenu za pomocą remove_submenu_page i remove_menu_page ()
Po pierwsze, w funkcji zwrotnej musisz pobrać tablicę globalnych menu z globalną zmienną $submenu, jeśli będziesz używać funkcji unset() .
Po drugie, dodajesz funkcję remove_submenu_page lub remove_menu_page() kierującą na stronę, którą chcesz usunąć, jak pokazano w poniższym kodzie:
function remove_admin_menu_items() { remove_submenu_page( 'menu_slug', 'submenu_slug'); }
Lub używając unset, możesz mieć następującą funkcję oddzwaniania
function remove_admin_menu_items() { globalne podmenu $; unset($submenu['parent menu slug'][indeks tablicy podmenu pozycji administratora]); }
Przykład dotyczący usuwania pozycji w menu administratora aktualizacji
Po zalogowaniu się do pulpitu WordPress, znajduje się pozycja menu dotycząca aktualizacji, które znajdują się w głównym menu pulpitu nawigacyjnego, jak pokazano na poniższym obrazku:
Zilustruję, jak możesz usunąć ten element menu administratora za pomocą metody omówionej powyżej. Po pierwsze, ślimak menu nadrzędnego to index.php , a ślimak menu aktualizacji to update-core.php
Usuń element menu administratora WordPress nadrzędny i podmenu
Możesz więc utworzyć zaczep akcji i funkcję wywołania zwrotnego, aby usunąć cały element menu za pomocą funkcji remove_menu_page() w następujący sposób:
// Usuń pozycję menu głównego wraz z podstronami /podmenu add_action( 'admin_menu', 'remove_admin_menu_items', 999 ); function remove_admin_menu_items() { remove_menu_page('index.php'); }
Spowoduje to usunięcie całego menu i podmenu, jak pokazano na poniższym obrazku:
Usuń tylko elementy podmenu WordPress
Możesz utworzyć zaczep akcji i funkcję wywołania zwrotnego, aby usunąć element podmenu za pomocą funkcji remove_submenu_page w następujący sposób:
//Usuń podstrony lub podmenu add_action( 'admin_menu', 'remove_admin_menu_items', 999 ); function remove_admin_menu_items() { remove_submenu_page('index.php','update-core.php' ); }
Spowoduje to usunięcie podmenu określonego w drugim parametrze funkcji remove_submenu_page, w tym przypadku określiliśmy jako „ update-core.php”, a wynik jest taki, jak pokazano na poniższym obrazku:
Korzystanie z funkcji PHP Unset()
Możemy również użyć funkcji unset w PHP, aby usunąć pozycje podmenu iw tym przypadku musimy najpierw uzyskać dostęp do globalnej tablicy $submenu, jak pokazano w poniższym kodzie:
//dodaj zaczep akcji do zdarzenia admin_menu add_action( 'admin_menu', 'remove_admin_menu_items', 999 ); //funkcja oddzwaniania function remove_admin_menu_items() { //Tablica menu administratora->Lista wszystkich elementów menu administratora WordPressa znajduje się w tej tablicy globalne podmenu $; //wydrukuj tablicę na ekranie, abyśmy mogli zobaczyć pozycje menu administratora według indeksu print('<pre>'); print_r($podmenu); print('<pre>'); // usuwamy wszystko inne wyświetlane na ekranie, aby widzieć tylko tablicę elementów menu administratora umierać(); }
Ten kod przechwytuje globalną tablicę podmenu i wyświetlamy ją, aby wyświetlić tablicę wszystkich menu, dzięki czemu możemy wybrać indeks każdego z elementów menu administratora, a następnie usunąć je według własnego uznania.
W tym kodzie widać użycie pre tagów i funkcji die() do wyświetlania kodu w czytelnym formacie.
Usuń pozycję menu podmenu WordPress za pomocą Unset
Tak więc indeks tablicy dla podmenu update-core to 10 . Możemy więc śmiało użyć funkcji unset() w następujący sposób:
// Usuń pozycję menu głównego wraz z podstronami za pomocą unset add_action( 'admin_menu', 'remove_admin_menu_items', 999 ); function remove_admin_menu_items() { globalne podmenu $; unset($submenu['index.php'][0]); //usuń menu najwyższego poziomu index.php (menu pulpitu - Menu główne ) unset($submenu['index.php'][10]); // usuń podmenu update-core.php (menu aktualizacji) }
Wyniki będą takie same, jak przy użyciu funkcji WordPressa remove_submenu_page.
Usuń element menu administracyjnego WordPress za pomocą Unset
Możemy również usunąć stronę najwyższego poziomu i podmenu razem, używając funkcji unset kierowanej na każdą z tych stron:
Kod powinien wyglądać następująco:
//. Usuń pozycję głównego menu podrzędnego za pomocą unset add_action( 'admin_menu', 'remove_admin_menu_items', 999 ); function remove_admin_menu_items() { globalne podmenu $; unset($submenu['index.php'][10]); }
Rezultatem będzie usunięcie jednej ze stron, ponieważ usunęliśmy w kodzie:
Zawijanie
W tym poście szczegółowo omówiliśmy dwa główne sposoby usuwania elementów menu administratora WordPress i czyszczenia pulpitu WordPress. Jeśli jesteś programistą WordPress, możesz ponownie użyć tego kodu i skopiować go z łatwością, sprawdź mój gist i możesz śledzić mnie na GitHub, aby uzyskać więcej przyszłych aktualizacji. Udostępniłem tutaj również kilka innych fragmentów – WP-Snippets . Mam nadzieję, że możesz teraz usunąć te elementy administratora WordPress, których nie chcesz ze swojego menu.