Cum pot afișa un meniu doar pe anumite pagini?

20 iun. 2014, 10:41:50
Vizualizări: 70.5K
Voturi: 11

În loc să folosesc widget-uri în sidebar pentru a specifica pe ce pagină ar trebui să fie vizibile, prefer să aleg din setările meniului unde să apară pe pagini specifice.

Modul implicit WordPress:

Cum arată în mod implicit

Deci "projects" este o pagină și are câteva subpagini. Dar ce se întâmplă dacă am încă 10 pagini și subpagini cu aceeași situație.

Aș dori să adaug o setare suplimentară (o listă cu paginile de nivel superior):

Unde doresc să adaug setarea

Dar nu pot găsi nicio documentație, acțiuni, filtre etc. când aceste setări sunt încărcate.

6
Comentarii

Cred că depinde de tema ta. Dar ca punct de plecare, http://codex.wordpress.org/Navigation_Menus ar trebui să ajute!!

sri sri
20 iun. 2014 11:00:46

Am văzut acest link de multe ori, nu există informații despre adăugarea de setări la un meniu. Doar crearea și afișarea unui meniu personalizat...

User User
20 iun. 2014 11:01:56

Hopa. Cred că asta este o opțiune nativă în Joomla, aparent nu și în WordPress. Pentru site-ul tău, ai putea crea fișiere personalizate pentru categorii/pagini.php și apoi adăuga un meniu personalizat acolo, dar ar fi o adevărată bătaie de cap. Ai avea patru fișiere .php și patru meniuri unice, câte unul pentru fiecare selecție de mai sus. O modalitate ușoară de a implementa este să folosești widget-urile din bara laterală ca instrument principal de navigare. Instrumentul pentru widget-uri de meniu personalizat este destul de simplu. Creează un meniu pentru fiecare pagină, presupunând că ai șabloane unice pentru fiecare. Notă, bara laterală nu este cel mai bun termen. Poți plasa un widget oriunde.

zipzit zipzit
20 iun. 2014 11:10:32

Sunt conștient de sidebarele și widget-urile. Aceste părți mici ale site-ului care nu sunt conectate la o pagină. Nu vreau să folosesc sidebare și widget-uri și le-am dezactivat pentru că nu folosesc niciunul din ele. Oricum, cred că locațiile de meniu sunt setări ale meniului, nu o setare a unui widget care conține un meniu.

User User
20 iun. 2014 11:23:18

Întrebarea ta este doar "Cum adaug setări personalizate pentru meniu?" sau este și "Cum folosesc setările personalizate ale meniului pentru a afișa un meniu doar pe anumite pagini?"?

engelen engelen
20 iun. 2014 15:47:02

Ei bine, nu știu cum să adaug o setare personalizată pentru meniu, deci de ce ar fi întrebarea mea cum să folosesc setarea?

User User
20 iun. 2014 15:55:24
Arată celelalte 1 comentarii
Toate răspunsurile la întrebare 7
1

Aceasta este o opțiune bună, dar sunt de acord cu sri, în prezent depinde foarte mult de tema ta. Poți folosi o soluție alternativă prin intermediul funcției is_page(). Trebuie să scrii ceva de genul acesta în fișierul temei page.php:

<?php
    if (is_page('proiecte')) {
        if ( is_active_sidebar( 'sidebar-navigation' )) {
            dynamic_sidebar( 'sidebar-navigation' );
        }
    }
?>

Dacă dorești să afișezi bara laterală și pe alte pagini, poți folosi operatorul logic sau astfel:

if (is_page('proiecte') || is_page('acasa') || is_page('pagina-post'))
14 sept. 2014 12:31:15
Comentarii

Nu cunosc o soluție mai bună, dar aceasta este cu adevărat o practică proastă în lumea programării. Mă gândesc că, în cel mai bun caz, poate ar fi bine să parcurgi un array sau ceva similar și apoi să faci schimbarea meniului. Cu toate acestea, apreciez răspunsul. Of

BRogers BRogers
4 feb. 2016 08:55:23
0

Așa puteți face acest lucru în fișierul header.php al temei Twenty Twelve, copiat într-o temă child.

<?php if ( is_page('projects') ) : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'conditional-menu-name', 'menu_class' => 'nav-menu' ) ); ?>
<?php else : ?>
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu' => 'Primary', 'menu_class' => 'nav-menu' ) ); ?>
<?php endif; ?>

Creați un nou meniu cu elementele pe care doriți să le afișați și înlocuiți conditional-menu-name din codul de mai sus cu numele meniului dumneavoastră.

Numele menu_class poate fi necesar să fie modificat pentru alte teme decât Twenty Twelve.

Sursă

5 nov. 2014 23:48:02
2

Cred că utilizarea unui plugin pentru aceasta este mai bună, astfel încât să poți păstra funcționalitatea chiar dacă schimbi tema în viitor. Verifică acest plugin. Face ceea ce dorești, dar ușor diferit față de cum ai schițat tu.

https://wordpress.org/plugins/page-specific-menu-items/

Dacă acest lucru te-a ajutat, te rog să votezi pozitiv sau să accepți ca răspuns. Mulțumesc!

14 iul. 2014 21:42:54
Comentarii

Am încercat acest plugin. Cu acest plugin, poți selecta un meniu doar pentru un anumit tip de postare. Eu doresc să selectez meniul pentru fiecare pagină individual.

User User
15 iul. 2014 09:33:46

Dacă ai un singur meniu pe întreg site-ul și vrei doar să ascunzi anumite linkuri din acel meniu când un utilizator este pe o anumită pagină, acest plugin face asta. După ce selectezi tipul de postare pentru care dorești meniul (pagina este ceea ce cauți, sau mai multe), mergi la editarea unei pagini și poți bifa linkurile pe care dorești să le ascunzi. Celălalt plugin funcționează invers. Selectezi un meniu dintr-o metabox pe ecranul de editare a paginii, deci ai nevoie de mai multe meniuri din care să alegi: http://wordpress.org/plugins/ce-wp-menu-per-page/

Mark.C Mark.C
15 iul. 2014 22:46:43
0

Știu că acest subiect este vechi, dar în cazul în care cineva ar avea nevoie de un răspuns la această întrebare, aș vrea să sugerez meniurile condiționale de la Themify https://themify.me/conditional-menus. Poți alege ce meniu să folosești, pe pagină, pe categorii, pe meta, orice. Și este gratuit :) Sper că acest lucru vă ajută

14 nov. 2015 19:44:41
1

Dacă doriți să re-activați widget-urile și căutați o soluție simplă, puteți utiliza un plugin numit Display Widgets. Eu l-am folosit și am utilizat secțiunea de text unde puteți adăuga link-uri către paginile dorite. Funcționează atât pentru link-uri către propriul site, cât și către alte site-uri. Are un spațiu dedesubtul textului unde puteți alege pe ce pagini să afișeze sau să ascundă widget-ul. În continuare puteți elimina widget-urile pe care nu le folosiți.

Am experimentat cu meniurile pentru o perioadă lungă înainte să găsesc acest plugin. Funcționează foarte bine.

Îl puteți găsi în secțiunea de Plugin-uri de pe WordPress.org.

20 iun. 2014 16:56:27
Comentarii

Mulțumesc mult! Dar nu caut un plugin suplimentar. Și nu folosesc widget-uri, deoarece aceste elemente plutitoare ale site-ului sunt prea greu de înțeles pentru unii dintre clienții mei.

User User
20 iun. 2014 17:19:34
1

O opțiune ar fi să creezi șabloane personalizate pentru fiecare meniu pe care îl ai. (Aceasta se referă la caseta de selectare a locațiilor din temă) Apoi, pe fiecare pagină, alegi șablonul pe care dorești să-l folosești și acesta va folosi și meniul asociat acelui șablon.

https://codex.wordpress.org/Page_Templates

Cred că obții același rezultat pe care îl cauți, dar în loc să specifici fiecărui meniu pe ce pagină să apară, vei specifica fiecărei pagini ce meniu să afișeze. Un beneficiu suplimentar al acestei metode este că nu există riscul să specifici accidental ca două meniuri să apară în același loc în același timp.

23 iul. 2014 18:28:56
Comentarii

Da, m-am uitat la asta. Dar dezvoltatorul nu știe niciodată câte meniuri are nevoie utilizatorul. Așa că trebuie să creez o mulțime de șabloane pentru a le acoperi pe toate. template_a.php, template_b.php, template_c.php etc.

User User
24 iul. 2014 09:45:40
0
-1

Puteți utiliza pluginul Menu Swapper pentru a face același lucru din panoul de administrare. Aici este Demo-ul acestui plugin.

17 apr. 2016 22:32:23