Czy kiedykolwiek zauważyłeś, jak mylące może być dla odwiedzających Twoją witrynę WordPress, gdy są zalogowani, ale nadal widzą wszędzie przyciski „Zaloguj” lub „Zarejestruj”? A może Twoi członkowie mają trudności ze znalezieniem swojego panelu konta, ponieważ jest on ukryty w menu.
Te drobne frustracje mogą sprawić, że nawet Twoi najbardziej lojalni użytkownicy poczują się jak outsiderzy na Twojej własnej stronie internetowej.
A spersonalizowane menu może zrobić ogromną różnicę. Pokazywanie zalogowanym użytkownikom opcji takich jak „Moje konto” lub „Wyloguj” zamiast ogólnych linków sprawia, że Twoja witryna wydaje się bardziej przyjazna i profesjonalna.
Dobra wiadomość? Tworzenie dynamicznych menu w WordPress jest łatwiejsze, niż myślisz.
W tym przewodniku pokażemy Ci dwie proste metody wyświetlania różnych menu dla zalogowanych użytkowników, niezależnie od Twojego poziomu umiejętności. 💡

Dlaczego wyświetlać różne menu zalogowanym użytkownikom w WordPress?
Zmienianie różnych obszarów Twojej strony WordPress w zależności od odwiedzających i ich aktywności sprawia, że Twoja witryna wydaje się spersonalizowana dla każdego użytkownika.
Ta spersonalizowana treść pomaga poprawić doświadczenie użytkownika na Twojej stronie WordPress.
Teraz, jeśli prowadzisz stronę internetową, na której użytkownicy nie muszą się rejestrować ani logować, prawdopodobnie możesz używać tych samych menu nawigacyjnych na całej swojej stronie. Jednak inne strony internetowe mogą znacznie skorzystać z wyświetlania niestandardowych menu zalogowanym użytkownikom.
Na przykład strony takie jak sklep internetowy, platforma e-learningowa lub społeczność strony członkowskiej WordPress mogą skorzystać z personalizowanych menu nawigacyjnych.
Spersonalizowane menu nawigacyjne dla zalogowanych użytkowników pomaga im łatwiej znaleźć rzeczy, na które się zapisali.
Na przykład użytkownik w sklepie internetowym może zarządzać swoim kontem, a członek płatnej społeczności może łatwo odnowić swoją subskrypcję lub wyświetlić ekskluzywne kursy online, które zakupił.

Domyślnie WordPress pozwala tworzyć tyle menu nawigacyjnych, ile chcesz. Możesz jednak wybrać wyświetlanie tylko jednego menu w określonej lokalizacji w swoim motywie WordPress.
Zanim skonfigurujesz menu dla zalogowanych użytkowników, musisz najpierw utworzyć dwa oddzielne menu nawigacyjne. Jedno menu będzie dla zalogowanych użytkowników, a drugie dla niezalogowanych. Zacznijmy.
⚠️ Krótka uwaga! Metody, którymi się dzielimy, są przeznaczone dla osób korzystających z klasycznych motywów WordPress. Jeśli używasz motywu blokowego z funkcjami Edycji Pełnego Witryny (FSE) z WordPress 5.8 i nowszych, ta metoda może nie działać.
Tworzenie menu dla zalogowanych i niezalogowanych użytkowników w WordPress
Aby utworzyć oddzielne menu dla obu typów użytkowników, przejdź do strony Wygląd » Menu w panelu administracyjnym WordPress.
Jeśli masz już menu nawigacyjne, którego używasz na swojej stronie dla wszystkich użytkowników, może ono służyć jako Twoje domyślne menu.

Następnie możesz kliknąć link „utwórz nowe menu”, aby utworzyć nowe niestandardowe menu dla zalogowanych użytkowników.
Tutaj możesz dodać pozycje menu, które chcesz wyświetlić zarejestrowanym lub zalogowanym użytkownikom. Na przykład, możesz dodać link do wylogowania do swojego menu.
Po lewej stronie ekranu zobaczysz listę stron Twojej witryny. Po prostu zaznacz pole wyboru obok każdej strony, którą chcesz dodać do swojego menu, i kliknij przycisk „Dodaj do menu”.

Możesz również przeciągać i upuszczać elementy menu po prawej stronie ekranu, aby je uporządkować.
Niżej na stronie możesz wybrać lokalizację do wyświetlenia swojego menu. Ale nie musisz przypisywać lokalizacji do tego menu teraz. Zrobimy to później w artykule.
Nie zapomnij kliknąć przycisku „Zapisz menu”, aby zachować zmiany.
Aby uzyskać więcej informacji na temat tworzenia menu, zapoznaj się z naszym przewodnikiem dla początkujących po menu nawigacyjnych WordPress.
Teraz jesteś gotowy, aby wyświetlać różne menu zalogowanym użytkownikom. Oto szybki przegląd wszystkich metod, które omówimy w tym przewodniku:
- Metoda 1. Wyświetlanie różnych menu dla zalogowanych użytkowników w WordPress przy użyciu wtyczki
- Metoda 2. Ręczne wybieranie menu dla zalogowanych użytkowników w WordPressie za pomocą kodu
- Wskazówka bonusowa: Więcej przypadków użycia logiki warunkowej w menu WordPress
- FAQ: Pokaż różne menu zalogowanym użytkownikom w WordPress
- Dodatkowe zasoby: Role użytkowników WordPress i nawigacja po witrynie
Gotowy na stworzenie bardziej spersonalizowanego doświadczenia? Zanurzmy się! 🌟
Metoda 1. Wyświetlanie różnych menu dla zalogowanych użytkowników w WordPress przy użyciu wtyczki
Najprostszym sposobem na wyświetlanie różnych menu zalogowanym użytkownikom jest użycie wtyczki Conditional Menus. Zainstalujmy i aktywujmy ją najpierw.
Więcej szczegółów znajdziesz w naszym przewodniku krok po kroku na temat jak zainstalować wtyczkę WordPress.
Po aktywacji musisz przejść do Wygląd » Menu z panelu administracyjnego WordPress. Następnie przełącz się na zakładkę „Zarządzaj lokalizacjami”.
Z tego miejsca zobaczysz listę dostępnych lokalizacji menu zdefiniowanych w motywie WordPress i menu, które są aktualnie wyświetlane.
Na przykład nasza lokalizacja „Menu główne” obecnie wyświetla „Menu główne”.

Teraz musimy poinformować wtyczkę, aby wyświetlała inne menu, gdy spełniony jest określony warunek.
Aby to zrobić, kliknij link „+ Menu warunkowe”. Następnie możesz wybrać menu nawigacyjne, które chcesz pokazać zalogowanym użytkownikom, z listy rozwijanej.

Następnie kliknij link „+ Warunki”.
Spowoduje to wyświetlenie okna podręcznego, w którym zobaczysz wiele warunków do wyboru.

Po prostu zaznacz pole wyboru obok opcji „Użytkownik zalogowany”, a następnie kliknij przycisk „Zapisz”.
Teraz możesz odwiedzić swoją witrynę, aby zobaczyć menu dla zalogowanych użytkowników w akcji. Możesz również wylogować się z panelu administracyjnego WordPress, aby zobaczyć menu nawigacyjne, które będzie wyświetlane wszystkim innym użytkownikom.

Metoda 2. Ręczne wybieranie menu dla zalogowanych użytkowników w WordPressie za pomocą kodu
Ta metoda wymaga dodania kodu do Twojej witryny WordPress. Jeśli nigdy tego nie robiłeś, zapoznaj się z naszym przewodnikiem jak kopiować i wklejać fragmenty kodu w WordPress.
Ogólnie rzecz biorąc, blogi poinformują Cię, że musisz dodać fragment kodu do pliku functions.php swojego motywu lub do wtyczki specyficznej dla witryny. Jednak nie zalecamy tej metody, ponieważ może ona potencjalnie powodować problemy z Twoją witryną.
Zamiast tego możesz użyć wtyczki WPCode.
WPCode pozwala na dodawanie niestandardowych fragmentów kodu do Twojej witryny bez bezpośredniej edycji plików motywu. Pomaga również w zarządzaniu tymi fragmentami i zapewnia ich bezpieczne wykonywanie, minimalizując ryzyko uszkodzenia witryny.
ℹ️ Uwaga: Wśród naszych marek partnerskich WPCode było naszym narzędziem do dodawania niestandardowych fragmentów kodu w celu rozszerzenia funkcjonalności każdej witryny. Jeśli chcesz dowiedzieć się więcej, możesz przeczytać naszą obszerną recenzję WPCode.
Aby rozpocząć, zainstalujmy wtyczkę WPCode. Możesz użyć bezpłatnej wersji WPCode, ponieważ ma ona wszystkie funkcje potrzebne do wyświetlania różnych menu zalogowanym użytkownikom.
Ale jeśli chcesz mieć dostęp do zaawansowanych funkcji, takich jak historia rewizji kodu i planowanie publikacji fragmentów kodu, rozważ uaktualnienie do WPCode Pro.
Po zainstalowaniu przejdź do Fragmenty kodu » + Dodaj fragmenty.

Spowoduje to otwarcie galerii fragmentów kodu WPCode.
Stąd możesz kliknąć przycisk „+ Dodaj niestandardowy fragment”.

Następnie przejdziesz do edytora tekstu WPCode.
Następnym krokiem jest dodanie tytułu do fragmentu kodu i wybranie „Fragment kodu HTML” z menu rozwijanego „Typ kodu”.

Po zakończeniu po prostu skopiuj i wklej poniższy kod do pola „Podgląd kodu”:
function my_wp_nav_menu_args( $args = '' ) {
if( is_user_logged_in() ) {
// Logged in menu to display
$args['menu'] = 43;
} else {
// Non-logged-in menu to display
$args['menu'] = 35;
}
return $args;
}
add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' );
Oto jak to może wyglądać w edytorze WPCode:

Upewnij się, że zastąpiłeś 43 i 35 identyfikatorami utworzonych wcześniej menu nawigacyjnych.
Identyfikator menu nawigacyjnego można znaleźć, wybierając je na stronie „Menu”. Zobaczysz numer identyfikatora menu w pasku adresu przeglądarki.

Gdy upewnisz się, że wszystkie szczegóły są poprawne, kliknij niebieski przycisk „Zapisz fragment”.
I to wszystko!
Wskazówka bonusowa: Więcej przypadków użycia logiki warunkowej w menu WordPress
Jeśli chodzi o nawigację, logika warunkowa może zrobić więcej niż tylko wyświetlać różne menu dla zalogowanych użytkowników. Oto kilka szybkich przykładów:
- Wyświetlaj różne menu w zależności od roli użytkownika: Możesz wyświetlać inne menu dla administratorów i współpracowników. Na przykład, pokaż opcje dostępne tylko dla administratorów, takie jak ustawienia witryny lub zarządzanie użytkownikami, podczas gdy współpracownikom lub innym rolom użytkowników oferuj ogólne linki nawigacyjne.
- Wyświetlaj różne menu na różnych stronach: Chcesz unikalne menu na swojej stronie blogowej lub stronach produktów? Logika warunkowa pozwala tworzyć dla każdej z nich specyficzne menu, dzięki czemu nawigacja jest dopasowana do treści.
- Ukryj nawigację na stronach docelowych: Strony docelowe działają najlepiej bez rozpraszaczy. Użyj logiki warunkowej, aby ukryć menu nawigacyjne i skupić uwagę na swoim wezwaniu do działania, takim jak formularz rejestracyjny lub oferta produktu.
Aby dowiedzieć się więcej, możesz zapoznać się z naszym przewodnikiem jak dodać logikę warunkową do menu w WordPress.
FAQ: Pokaż różne menu zalogowanym użytkownikom w WordPress
Nadal masz pytania dotyczące wyświetlania różnych menu dla użytkowników w WordPress? Oto kilka szybkich odpowiedzi, które Ci pomogą:
Czy mogę wyświetlać różne menu w zależności od ról użytkowników?
Absolutnie. Możesz wyświetlać unikalne menu dla Administratorów, Redaktorów lub dowolnej innej niestandardowej roli użytkownika na swojej stronie. Wtyczka Conditional Menus zapewnia prostą opcję konfiguracji, co jest idealne do dostosowania nawigacji dla członków Twojego zespołu.
Czy lepiej użyć wtyczki, czy dodać kod ręcznie?
Dla większości użytkowników zalecamy korzystanie z wtyczek takich jak Conditional Menus lub WPCode. Narzędzia te ułatwiają wyświetlanie różnych menu bez modyfikowania plików motywu.
WPCode jest szczególnie pomocny, jeśli preferujesz elastyczność korzystania z kodu. Pozwala bezpiecznie dodawać niestandardowe fragmenty PHP i zarządzać nimi z poziomu panelu WordPress – nie ma potrzeby bezpośredniej edycji pliku functions.php.
Ręczne kodowanie jest nadal dobrą opcją dla programistów, ale dla wszystkich innych wtyczka jest bezpieczniejszym i bardziej przyjaznym dla początkujących wyborem.
Czy mogę ukryć menu nawigacyjne na określonych stronach?
Tak, możesz użyć tej samej logiki warunkowej, aby ukryć menu nawigacyjne na określonych stronach. Jest to popularna strategia dla stron docelowych, ponieważ usuwa rozpraszacze i skupia odwiedzającego na Twoim wezwaniu do działania.
Dodatkowe zasoby: Role użytkowników WordPress i nawigacja po witrynie
Mamy nadzieję, że ten artykuł pomógł Ci dowiedzieć się, jak łatwo wyświetlać różne menu nawigacyjne zalogowanym użytkownikom w WordPress. Następnie możesz również zapoznać się z naszymi przewodnikami na temat:
- Jak zezwolić na rejestrację użytkowników w Twojej witrynie WordPress
- Jak pozwolić użytkownikom zapraszać znajomych do rejestracji w WordPress
- Jak moderować nowe rejestracje użytkowników w WordPress
- Jak sprawić, by WordPress Cię nie zapominał dzięki funkcji „Zapamiętaj mnie”
- Jak powitać każdego użytkownika niestandardową wiadomością powitalną w WordPress
- Jak ograniczyć formularze WordPress tylko do zalogowanych użytkowników
- Jak stylizować menu nawigacyjne WordPress
- Najlepsze wtyczki do członkostwa WordPress
Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube po samouczki wideo WordPress. Możesz nas również znaleźć na Twitterze i Facebooku.


Jan-Paul Kleijn
Najpierw pomyślałem o wtyczce. Muszę przestać tak myśleć.
Potem zobaczyłem Twój post i byłem przekonany.
Dziękuję za opublikowanie tego, pomogłeś mi bardzo miło.
Phil
Wielkie dzięki za to. Działa idealnie.
Ariet
Witam,
To całkowicie działa!
Ale zmienia też moje menu stopki.. czy jest sposób, żeby moje menu stopki pozostało takie samo?
Tarron Acuff
Mam więc 2 menu. Jedno dla publiczności, a drugie, które chciałbym, aby pracownicy widzieli po zalogowaniu. Menu pracownika zastąpiłoby główne menu tylko wtedy, gdy pracownik jest zalogowany.
Oto co obecnie używam w moim pliku functions.php
// Ustaw rolę jako klasę ciała
function add_role_to_body( $classes ) {
$user = wp_get_current_user();
$user_roles = $user->roles;
foreach( $user_roles as $role ) {
$classes[] = ‘role-‘ . $role;
}
return $classes;
}
add_filter( ‘body_class’, ‘add_role_to_body’ );
***Oto co dodałem do CSS***
/* Najpierw ukryj elementy menu dla użytkowników niebędących "pracownikami" */
#top-menu li.menu-for-employee {
display: none;
}
/* Pokaż pozycje menu dla użytkownika "pracownik" */
.role-employee #top-menu li.menu-for-employee {
display: initial;
}
Kiedy loguję się jako pracownik, oba menu są wyświetlane.
Z góry dziękuję.
Wasim
u mnie nie działa. Po dodaniu tego kodu wyświetla się domyślne menu, nawet moje główne menu zniknęło.
Joe
Cześć wszystkim,
Fajny tutorial, ale zastanawiałem się, czy można użyć tego samego podejścia do zastąpienia responsywnego menu przy określonym rozmiarze ekranu?
Mam dwa menu, ale wolałbym mieć tylko jedno responsywne menu przy 768 px, zastępując jedno menu innym.
Dzięki
Pet
Świetna robota z Twoimi przewodnikami. Buduję moją pierwszą stronę na WordPressie i uważam, że Twoja strona jest niezwykle pomocna w moim prowadzeniu, dziękuję.
Naprawdę chciałem pokazać różne menu dla zalogowanych użytkowników (np. „edytuj profil”) i dla niezalogowanych użytkowników, co doprowadziło mnie tutaj. Udostępniony kod działa u mnie dobrze. Mam teraz dwa menu, które ładnie się wyświetlają. Jednak ostatnia część kodu, ciąg znaków add filter, moim zdaniem, trochę mnie myli. Teraz pod widżetem paska bocznego wyświetla się kolejne menu. Menu „zalogowany”. Używam motywu sydney i próbowałem bezskutecznie usunąć to niepotrzebne menu. Czy masz jakiś pomysł, jak mogę sprawić, żeby się nie wyświetlało?
Wsparcie WPBeginner
Cześć Pet,
Proszę sprawdzić stronę Wygląd » Widżety, aby zobaczyć, czy masz niestandardowe menu dodane jako widżet. Jeśli tam jest, możesz po prostu usunąć ten widżet.
Admin
Pet
What genius! It worked! Thanks for the wonderful tip!!
Jomcy Johny
Ja też mam ten sam problem.. Proszę pomóż mi.. ale nie mam widżetów.. Dziękuję..!
Alex Hammerschmied
Works like a charm…
Thanks for that.
Btw i love theses short tutorials
giovanna
Cześć, czy możesz mi pomóc? Mam jeszcze jeden problem, proszę? Muszę ukryć jedno menu dla wszystkich i pozwolić tylko sprzedawcom widzieć, co mam zrobić, proszę? jaki konkretny kod mam użyć, proszę?
ericlee
Kiedy modyfikujesz plik functions.php w ten sposób – czy nie zostanie on usunięty podczas aktualizacji następnej wersji WP?
Wsparcie WPBeginner
Tak, zostanie to usunięte podczas aktualizacji motywu. Aby temu zapobiec, możesz utworzyć wtyczkę specyficzną dla witryny.
Admin
Ramona
Czy to zadziała z instalacją Buddypress? Dzięki.
Nikhil Chaudhari
czy funkcja ustawia również menu drugorzędne? chcę ustawić tylko menu główne. jak to zrobić
Nikhil Chaudhari
ta powyższa funkcja ustawia menu drugorzędne, a ja chcę ustawić tylko menu nagłówka?
jak to zrobić
Asfaha
Cześć,
dzięki wielkie za to rozwiązanie, zastosowałem i działa idealnie i oszczędziło mi to instalację kolejnego pluginu.
Shafaq
to jest kod do zastąpienia istniejącego menu menu dla zalogowanego użytkownika poprzez dodanie lokalizacji top-menu i z menu loggedin, bez potrzeby instrukcji else
add_filter( ‘wp_nav_menu_args’, function ( $args )
{
if( is_user_logged_in() && $args[‘theme_location’] === ‘top-menu’ ) {
$args[‘menu’] = ‘loggedin’;
}
return $args;
});
Ashraf Ali
———————————————————–
function my_wp_nav_menu_args( $args = ” ) {
if( is_user_logged_in() ) { $args['menu'] = 'logged-in'; } else { $args['menu'] = 'logged-out'; } return $args; } add_filter( 'wp_nav_menu_args', 'my_wp_nav_menu_args' ); ---------------------------
Teraz, jak sprawić, by działało z
—————————————————
———————————————————————————————————————-
Proszę o poradę
Iqbal Mahmud
Jeśli chcę ukryć stronę przed niezalogowanym użytkownikiem z pojedynczego menu, co mam zrobić?
Kasper
Możesz blokować strony, aby ukryć je przed niezalogowanymi użytkownikami. Istnieje kilka wtyczek, które bardzo ułatwiają to zadanie. Przychodzi na myśl Users Ultra.
Zev
Wszystko działało idealnie.
Jednak nadal mam problem z powtarzającym się menu głównym w sekcji nawigacji dodatkowej, którego nie mogę usunąć (nie mam skonfigurowanego menu dodatkowego).
Vince
Mam dokładnie ten sam problem. Zmiana pojawia się w lokalizacji menu drugorzędnego znikąd i ja również nie mam skonfigurowanego menu drugorzędnego. :/ Proszę o poradę, jak sobie z tym poradzić.
Z góry dziękuję.
Chiranjeevi Vinodkumar
UWAGA!!!
Większość z nas używa motywów.
Więc najpierw przejdź do pliku functions.php swojego motywu.
Wyszukaj frazę "navigation" jako słowo kluczowe.
W przypadku motywu Shopkeeper...
================================================================== register_nav_menus( array( 'top-bar-navigation' => __( 'Nawigacja Paska Górnego', 'shopkeeper' ), 'main-navigation' => __( 'Nawigacja Główna', 'shopkeeper' ), 'footer-navigation' => __( 'Nawigacja Stopki', 'shopkeeper' ), ===================================================================
Tak to wygląda.. więc wybierz to, które jest podstawowe. W moim przypadku jest to „Nawigacja na pasku górnym”, dlatego użyłem „top-bar-navigation”.
Użyłem następującego kodu i działał jak marzenie!!!
To mój sposób na podziękowanie autorowi.
Dzień dobry !!
Ann Novakowski
Oto co zadziałało u mnie z WP. Użyłem tego do stworzenia dedykowanego menu głównego dla zalogowanych użytkowników Buddypress. NIE wpłynie to na moje menu stopki ANI menu mediów społecznościowych dla żadnych odwiedzających, więc wszyscy zobaczą te same menu pomocnicze, niezależnie od tego, czy są zalogowani, czy nie. Opiera się to na wszystkich powyższych komentarzach (podziękowania dla Fransiska!).
Dodałem następujący kod do pliku functions.php mojego motywu potomnego:
// ZMIEŃ GŁÓWNE MENU =TYLKO= JEŚLI CZŁONEK JEST ZALOGOWANY
function my_wp_nav_menu_args( $args = "" ) { if ($args['theme_location'] == 'primary') { if( is_user_logged_in()) { $args['menu'] = 'logged-in'; }else{ $args['menu'] = 'logged-out'; } } return $args; }
add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
Oliver
Nie wiem, co się stało z moim komentarzem, ale –> ” <– to jest poprawne!
fidel toro
dzięki!! bardzo mi pomogłeś
Matthias Campbell
Cześć,
Dodałem ten kod (prawdopodobnie błędnie) do mojego pliku functions.php w moim motywie w edytorze WordPress i teraz mam stały błąd serwera 500. Nawet po usunięciu kodu.
Przed tym próbowałem stworzyć wtyczkę specyficzną dla witryny, ale to się nie udało. Czy możesz mi powiedzieć, czy fragment kodu wymaga otwierającego i zamykającego nawiasu?
Jeśli tak, jak mam to zrobić?
Mój hosting nie może mi teraz pomóc i proszą mnie o zapłacenie programiście za pomoc za 50 euro za godzinę. Proszę, pomóż mi. To pilne.
Jestem nadal zalogowany do WordPressa, ale cokolwiek kliknę, otrzymuję błąd 500 z tym konkretnym komunikatem.
PHP Parse error: syntax error, unexpected ‘}’ in line 1194.
Stało się tak, ponieważ wkleiłem fragment kodu po całym tekście w pliku functions.php.
Następnie usunąłem fragment kodu, aby sprawdzić, czy to rozwiąże problem, za pomocą edytora i FTP, a nadal otrzymuję błąd.
Czekam na Twoją odpowiedź.
Z poważaniem
Wsparcie WPBeginner
Zależy to od tego, gdzie dodajesz kod. Jeśli przed nim znajduje się zamykający tag PHP, musisz dodać tag otwierający PHP, taki jak <?php
Jeśli ten kod jest ostatnią rzeczą w pliku funkcji, nie musisz dodawać tagu zamykającego.
Admin
Hubert
Jeśli masz wiele lokalizacji menu i chcesz zastosować różne menu dla każdej lokalizacji, możesz użyć poniższego kodu:
function my_wp_nav_menu_args( $args = ” ) {
// Lokalizacja menu głównego
if( ‘primary-main’ == $args[‘theme_location’] ) {
if( is_user_logged_in() ) { $args[‘menu’] = ‘Primary-Logged-In’; } else { $args[‘menu’] = ‘Primary-Logged-Out’; }
return $args;
}
// Lokalizacja menu drugorzędnego
if( ‘secondary-menu’ == $args[‘theme_location’] ) {
if( is_user_logged_in() ) { $args[‘menu’] = ‘Secondary-Logged-In’; } else { $args[‘menu’] = ‘Secondary-Logged-Out’; }
return $args;
}
}
add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
Haji
To nie działa, czy ktoś zna właściwy kod, jeśli masz 2 lub więcej menu?
Ravikant
Doskonale bracie. Działa... świetna robota
Leopold
To było prawie za łatwe!
Dziękuję bardzo za prosty artykuł.
W ten sposób nie muszę instalować żadnej wtyczki..
Gaurang
Myślę, że lepiej użyć wtyczki IF MENU. https://wordpress.org/plugins/if-menu/
Tworzenie dwóch oddzielnych menu w ten sposób wymaga dwukrotnego tworzenia/aktualizacji menu.
Chris
Cześć Gaurang,
Jestem ciekawy, dlaczego uważasz, że używanie wtyczki jest lepsze niż pisanie kodu w pliku functions.php? Kiedyś powiedziano mi, abym uważał na liczbę wtyczek używanych na stronie WordPress, a powyższy kod wydaje się wystarczająco prosty; pomijając konieczność monitorowania każdej aktualizacji motywu...
Dzięki,
Rub
Świetnie, jak mogę tego użyć, aby pokazać menu zalogowanemu użytkownikowi, który ma określoną rolę?
Kit Johnson
Działało to tak prosto i schludnie. Nie sądziłem, że będzie to takie łatwe. Dziękuję!
Jason Sisson
to jest świetne, wypróbowałem. działa. ale chciałbym też przekierować według roli
czy to jest proste, czy znacznie trudniejsze
Ryan R. Bayne
Dzięki. Pracuję z funkcjami menu po raz pierwszy.
Tworzenie wtyczki WTG Portal Manager, która pozwoli bardzo szybko zdefiniować portal. Każdy portal posiadający własne menu. Wtyczka wyjaśnia relację między portalem a menu oraz zapewnia inne unikalne opcje.
veer2412
jak mogę wyświetlać różne posty różnym użytkownikom??
veer2412
dzięki za pomoc.. ale co jeśli chcę pokazać różnym użytkownikom różne posty na mojej stronie.. czy jest jakiś sposób, aby to zrobić za pomocą kodu??
Zespół WPBeginner
W sekcji Wygląd > Menu musisz wybrać lokalizację dla swojego menu. Wygląda na to, że na Twojej stronie są dwa miejsca, w których możesz dodawać menu. Musisz więc utworzyć dwa różne menu, a następnie przypisać im lokalizację.
Heather Gile
jaki byłby poprawiony kod dla tego, gdyby istniało rozróżnienie na „Primary” i „Top”?
$args[‘primary-menu’] = ‘logged-in’;
$args[‘top-menu’] = ‘logged-in’;
else
$args[‘primary-menu’] = ‘logged-out’;
$args[‘top-menu’] = ‘logged-out’;
?
Kyle
Wordpress nie pozwala mi umieścić 2 menu w mojej lokalizacji „górny nagłówek”. Podany kod działa, ale zmienił WSZYSTKIE moje menu na zalogowanych lub wylogowanych i nie wyświetla mojego normalnego menu nawigacyjnego
b2995
Mam menu górne, a także menu strony (pod logo). Jak zmieniłbym kod, aby zmienić tylko to górne menu. Obecnie zmieniają się WSZYSTKIE moje menu.
Harry Slyman
You saved my day! thank you
Rob
OMG, to mnie rozśmieszyło, było takie proste… dziękuję!
Melih
Ilustracyjne i łatwe, dziękuję bardzo.
Rohit Gahlot
Working ..
Thanks a lot
Seth
Dzięki za to.
Na stronie głównej nazwy menu, które mają podmenu (rozwijane menu), nie pokazują rozwinięcia. Kiedy przechodzę na inną stronę niż moja strona główna, nie ma z tym problemu i wszystkie pozycje menu są wyświetlane.
Tak jest na stronie głównej zarówno dla zalogowanych, jak i wylogowanych elementów. Czy masz pomysł, jak to naprawić? Dzięki
http://www.viridianmgt.com/wordpress
Wsparcie WPBeginner
Wygląda na problem z motywem. Skontaktuj się z pomocą techniczną swojego motywu.
Admin
Wouter Bredenbeek
Zmiana tylko określonego menu może zostać osiągnięta poprzez zmianę $args[‘menu’] = ‘logged-in’; na $args[‘secondary-menu’] = ‘logged-in’; na przykład. Powinno zadziałać!
DANIEL
Ten kod nie działa. Zarejestrowałem menu 'primary-menu' i 'secondary-menu' i próbuję użyć funkcji podanej z twoją zmianą w argumentach, ale żadne menu się nie zmienia.
Naprawiłem to za pomocą tego kodu:
function my_wp_nav_menu_args( $args = "" ) { if ($args['theme_location'] == 'secondary-menu') { if( is_user_logged_in()) { $args['menu'] = 'logged-in'; }else{ $args['menu'] = 'logged-out'; } }else{ $args['menu'] = 'Principal'; } return $args; }
add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
UWAGA: ‘ Principal to nazwa głównego menu statycznego.
Rory PQ
Tak blisko, zarówno moje menu stopki, jak i główne menu się zmieniają. Próbuję zmienić tylko menu stopki. Próbowałem tak wielu wariantów tego kodu, ale nic z tego. Jakieś pomysły na rozwiązanie?
Kiedy sprawdzałem mój motyw za pomocą Firebug, powiedział, że moja stopka to „id=footer-nav”. Czy powinienem użyć tej nazwy zamiast „secondary-menu”?
Wielkie dzięki
lemonthirst
Hura! W końcu to znalazłem, nigdy nie przyszło mi do głowy, że ta prosta funkcja tak bardzo ułatwi mi pracę.
Dzięki chłopaki!
Grant
Kiedy próbuję wprowadzić kod do pliku functions.php, otrzymuję następujący błąd:
Parse error: syntax error, unexpected ’03’ (T_LNUMBER) in /home/grantkessler/public_html/wp-content/themes/GameNews/functions.php on line 201
Stevie Allison
Doskonale, dokładnie tego szukałem. Spróbuję teraz. Dziękuję
Stevie Allison
Działa idealnie. Dziękuję
Alex
Wielkie dzięki za udostępnienie kodu, ale czy to naprawdę dodaje to menu we wszystkich obszarach! Czy jest sposób, aby pokazać je tylko w określonym menu?
shanewaj rahman
Dziękuję,
Uczyniłeś to tak łatwym.
zaman
Stworzyłem wtyczkę specyficzną dla strony i menu działają dobrze, ale moje menu stopki również zostało zmienione, nie pokazuje tego, które wybrałem, ale to dla zalogowanych lub wylogowanych użytkowników.
Wsparcie WPBeginner
Menu WordPress Zaman mają przypisane lokalizacje. Upewnij się, że używasz innego menu dla lokalizacji menu stopki.
Admin
Grant
Cześć, kiedy próbuję wstawić kod, psuje mi to całkowicie stronę, wyświetlając komunikat o błędzie:
function my_wp_nav_menu_args( $args = ” ) { if( is_user_logged_in() ) { $args[‘menu’] = ‘logged-in’; } else { $args[‘menu’] = ‘logged-out’; } return $args; } add_filter( ‘wp_nav_menu_args’, ‘my_wp_nav_menu_args’ );
Ostrzeżenie: Nie można zmodyfikować informacji o nagłówku – nagłówki zostały już wysłane (początek danych wyjściowych w /homepages/5/d156331781/htdocs/reviewthegame/wp-content/themes/Made-Theme/made/functions.php:12) w /homepages/5/d156331781/htdocs/reviewthegame/wp-includes/pluggable.php w linii 899
joseph
Czy jest sposób, aby zastosować to tylko do konkretnego menu?
Próbowałem tego:
if( $args->theme_location == ‘primary-menu’ ) {
//Kod tutaj
}
ale to nie działa. Czy masz jakieś pomysły, jak to osiągnąć?
shanewaj rahman
Oto co zrobiłem, aby rozwiązać problem z dwoma menu.
Usunąłem tę funkcję i umieściłem ten kod w pliku header.php
, gdzie wywoływałem moje menu.
fałsz,
‘menu_id’ => ‘nav’,
‘menu’ => ‘Zarejestrowany’,
‘items_wrap’ => ‘%3$s’)
);
}
else
{
wp_nav_menu( array(‘container’ => fałsz,
‘theme_location’ => ‘primary’,
‘menu_id’ => ‘nav’,
‘items_wrap’ => ‘%3$s’,
) );
}?>
Fransiska
Użyj
if ($args[‘theme_location’] == ‘primary’)
zamiast tego i będzie działać
Gerald Tyler
Fransiska, czy możesz szerzej wyjaśnić swoją sugestię? Mam kilka podmenu, które umieszczam w paskach bocznych, a rozwiązanie na tej stronie sprawia, że wszystkie te krótkie menu stają się teraz pełnymi menu ze wszystkimi nazwami menu głównego, żadne z moich różnych niestandardowych menu. Twoja sugestia brzmi, jakbyśmy mogli zastosować ten trik tylko do pozycji menu głównego, a nie do pasków bocznych. Czy to ma sens? Czy możesz podać pełny kod? Nie mam szczęścia w zgadywaniu, jak to wszystko działa.
joseph
25 października 2013 o 1:16
Czy jest sposób, aby zastosować to tylko do konkretnego menu?
Próbowałem tego:
if( $args->theme_location == ‘primary-menu’ ) {
//Kod tutaj
}
ale to nie działa. Czy masz jakieś pomysły, jak to osiągnąć?
Fransiska
31 stycznia 2014, 2:53
Użyj
if ($args[‘theme_location’] == ‘primary’)
zamiast tego i będzie działać
Jamie Mannion
Świetna wskazówka, pojawiła się w idealnym momencie mojego rozwoju witryny.
Działa świetnie! Myślę, że rozszerzę to, aby pokazywać różne menu dla różnych user_meta.
Dzięki za udostępnienie!
karen
Cześć, dzięki za to, bardzo pomocne. jednak nadal nie jestem pewien, gdzie umieścić kod?
(Po utworzeniu menu dodaj ten kod do pliku functions.php swojego motywu lub wtyczki specyficznej dla witryny) – gdzie jest plik functions.php?
pozdrawiam
Wsparcie WPBeginner
Przejdź do Wygląd » Edytor zobaczysz plik functions.php na liście plików po prawej stronie. Jednakże, jeśli nie widzisz pliku functions.php, oznacza to, że używasz frameworka motywu lub motywu potomnego. W takim przypadku musisz utworzyć wtyczkę specyficzną dla Twojej witryny i dodać ten kod do tej wtyczki. Zobacz nasz przewodnik po wtyczce specyficznej dla witryny.
Admin
Cathy Earle
Świetna wskazówka. Z niecierpliwością czekam na jej wykorzystanie w nadchodzącym projekcie.