Wp_nav_menu () - are un meniu arbitrar creat în panoul Aspect - meniu - (aspect -

Afișează meniu arbitrar create în panoul: „> meniul Aspect“ (Aspect> Meniuri).

Ce fel de afișare meniu de navigare (pot exista mai multe), indicat în parametrul theme_location.

Cu excepția cazului în theme_location specificat. apoi pentru a afișa meniul va fi selectat în următoarea ordine:

în caz contrar, primul meniu care nu este gol;

sau imprima valoarea returnată de funcția specificată în parametrul „fallback_cb“ (implicit în cazul în care se indică funcția wp_page_menu);

  • dacă ceva nu se potrivește, funcția, și nu se va retrage nimic.
  • Pentru a sprijini meniul temă, trebuie să activați această funcție prin intermediul:
    add_theme_support ( 'meniuri');

    Sau vă puteți înregistra o locație pentru meniu, folosind register_nav_menu (). apoi suportul de meniu tema activa automat.

    Mai multe despre includerea și adăugarea puteți citi meniul într-un articol separat.

    Filtrul schimbă elementul de meniu

    nav_menu_item_args - setările de filtrare ale unui element de meniu individuale.

    nav_menu_css_class - filtre clase css (atribut de clasă) ale individului

  • element de meniu.

    nav_menu_item_id - filtreaza atributul ID al individului

  • element de meniu.

    nav_menu_link_attributes - atribute de filtrare element de meniu: titlu, țintă, rel, href.

    nav_menu_item_title - filtre elementul de meniu link-uri text ancora.

  • walker_nav_menu_start_el - filtreaza codul HTML care începe un element de meniu individuale. Start înseamnă tag-ul li neclasificat:
  • Cîrligele funcții:

    slug) _items "title =" / ** * Filtre conținutul listei HTML pentru un meniu de navigare specific. * * * * @since 3.0.0 @see wp_nav_menu () * * @param string $ elemente Lista de conținut HTML pentru elementele de meniu. * @param stdClass $ ARGS Un obiect care conține wp_nav_menu (argumente). * / $ = Apply_filters Items ( "wp_nav_menu__items", $ elemente, $ args); „> wp_nav_menu_ (MENU-> slug) _items

    se întoarce

    Funcția afișează meniul de cod HTML.

    Argumente parametru $ args

    theme_location (string) ID locația șablonului de meniu. Un identificator care indică register_nav_menu funcția () la inregistrare meniu.
    Implicit: meniul „“ meniu (string) care urmează să fie afișat. Conformitate: id, slug sau numele meniului.
    Implicit: "" container (string)

    Eticheta de ambalaj ul. Acceptabil: div sau nav.

    Dacă nu trebuie să-și încheie orice am scrie false: container => false.
    Implicit: div

    container_class (string) atribuie clasa de valoare între container de meniu.
    Implicit: Meniu - container_id container (string) Valoarea atributului id din meniul containerului.
    Implicit: '' menu_class (string) Valoarea atributului class in tag ul.
    menu_id meniu (string) Valoarea atributului id din eticheta ul: implicit.
    Implicit: echo meniu slug (boolean) afișează (true) sau pentru a reveni la proces (fals).
    Implicit: true fallback_cb (string) funcția să se ocupe de ieșire, în cazul în care nici un meniu este găsit.
    Trece toate argumentele $ args funcția specificată aici.
    Se pune un șir gol „“ sau „__return_empty_string“. astfel încât nimic nu este afișat în cazul în care nu există nici un meniu.
    Implicit: wp_page_menu înainte (string) Textul înaintea etichetei meniu.
    Implicit: „“ după (șir) de text după fiecare etichetă
    meniu.
    Implicit: „“ link_before (string) text la textul ancoră al fiecărei verigi din meniu.
    Implicit: '' ancora link_after (string) Text după fiecare link din meniu.
    Implicit: „“ items_wrap (string) Este necesar să înveliți elementele în eticheta ul. Dacă este necesar, specificați șablonul de înfășurare.
    Implicit: '

      % 3 $ s
    „Adâncime (număr) Câte nivele de afișare link-uri imbricate. 0 - toate nivelurile. Walker (obiect) al clasei, care va fi folosit pentru a construi un meniu. Trebuie să specificați un obiect, mai degrabă decât un șir de caractere, cum ar fi noi My_Menu_Walker (). Implicit: Walker_Nav_Menu (). Cum se utilizează: a se vedea mai jos.
    Implicit: Walker_Nav_Menu item_spacing (string) sau nu lasă nici o pauze de linie într-un cod de meniu HTML. Poate: păstra sau aruncați
    Implicit: „păstra“ la partea de sus

    # 1. Cu setările implicite de ieșire din primul meniu care nu este gol:

    # 2. Meniul Display cu numele de „navigare site-ului“:

    # 3 meniu de pagini. Exemplu de subiecte: Douăzeci și zece.

    În cazul în care rezultatul nu a fost configurată, iar meniul nu este găsit, atunci meniul va fi construit din funcția de pagini wp_page_menu ().

    În acest exemplu, meniul va fi afișat împreună cu melcul „primar“:

    # 4 Utilizați wp_nav_menu_args Filtru pentru a seta setările implicite pentru toate meniu

    Pentru a scoate recipientul din toate imediat meniul de navigare, utilizați următorul cod în fișierul functions.php a temei. Utilizați cârligul „wp_nav_menu_args“:

    # 4.1. Scoateți recipientul, un singur meniu de ieșire

    # 5 Scoateți ul înveliș

    Acest exemplu va elimina învelișul tag-ul din meniu:

    # 6 Adăugați un cuvânt la meniul de start

    Acest exemplu arată cum să adăugați un cuvânt la începutul listei de meniu, sub forma aceluiași element de meniu, dar nu se leagă. Adăugați la partea de sus a meniului, cuvântul „List“ va specifica, de asemenea, tag-ul li id ​​atribut creat:

    # 7 clase CSS Adăugați la toate meniurile

    Cu ajutorul cârligului, putem adăuga propriile clase CSS, dacă am respectat condiția corectă.

    Adăugați clasă CSS în cazul în care postul și titlul elementului de meniu încă „blog“:

    # 8 Utilizarea funcției sale de a construi meniuri

    Pentru a face acest lucru, în primul rând, trebuie să specificați argumentul „Walker“ => nouă Your_Walker_Function.

    Your_Walker_Function - aceasta este noua noastră de clasă, care construiește meniul. Pentru a nu reinventeze roata, acesta poate fi copiat din original (clasa Walker_Nav_Menu din dosarul \ wp-include \ nav-meniu-template.php) și doar tweak acolo unde este necesar.

    Iată un exemplu care adaugă o adâncime de meniu și / chiar clase impare CSS pentru elementele de meniu (atât ul și li):

    În zona de administrare aveți nevoie pentru a crea 2 meniuri diferite și să le atașați la locurile corespunzătoare (zone).

    # 10 de clasă CSS pentru meniul de celule parentale

    Dacă doriți să adăugați o clasă CSS pentru elementele de meniu care au filiale (liste stivuite de link-uri), atunci vom face acest lucru:

    # 11 Adăugarea unei clase la elementele de meniu individuale

    A existat un cârlig special pentru acest lucru: nav_menu_css_class. Și acum, clasele pot fi adăugate sau eliminate prin ea. De exemplu, să adăugați clasa my__class de toate elementele de meniu:

    elementele de meniu Clasele sunt adăugate _wp_menu_item_classes_by_context funcție ( $ Menu_items);. Dar, din păcate, nu oferă filtre pentru a adăuga clasă. Prin urmare, să ne merge un mod sens giratoriu, și de a folosi un str_replace carja ():

    # 12 Afișare meniu numai dacă există

    În mod implicit, în cazul în care nici un meniu, în schimb se va retrage pagina. Dar dacă doriți să afișați meniul, numai atunci când este creat în panoul de administrare, selectați parametrul fallback_cb ca „__return_empty_string“:

    13 Concluzie Numai element de meniu

    Să presupunem că există un prim nivel și fiecare dintre elementele primului nivel, are propriul submeniu. Avem nevoie pentru a aduce într-un submeniu cu clasa de meniu-item-135:

    Nu este într-adevăr cel mai bun, dar un exemplu de lucru. Uneori poate fi util, pentru site-urile obscure în cazul în care aveți nevoie pentru a obține rapid rezultatul.

    clase CSS de elemente de meniu

    Următoarele clase CSS se adaugă la elementele de meniu (condițiile de separare pe care paginile se află utilizatorul):

    Pentru toate articolele de pe toate paginile

    .meniu-element - toate elementele de meniu;

    Pentru elementele paginii curente

    Pentru elementele părinte pentru pagina pe care o vizualizați

    Pentru elementele într-un fel în legătură cu pagina pe care o accesați

    Pentru elementele legate de pagina de start

    Compatibilitatea cu funcția wp_page_menu ()

    În exemplele de la punctul de meniu articol $ utilizate în mod frecvent. Mai jos se prezintă aproape toate setările pentru acest element:

    Exemplu de parametrul Walker

    Walker poate oferi un obiect care va construi meniul. Acest obiect poate fi descris în codul HTML meniul primit.

    Dacă doriți să creați un meniu personalizat pentru layout-ul, este uneori mai ușor de a modifica acest obiect decât pentru a reface aspectul.

    Ca un exemplu, obiectul Walker, să ia clasa Walker_Nav_Menu<>. care este implicit. În ea suntem interesați într-un singur start_el metoda (). Acesta este responsabil pentru fiecare element de HTML. De regulă, este suficient să își schimbe. Pentru a face acest lucru, aveți nevoie pentru a crea o clasă care se va extinde clasa Walker_Nav_Menu și specificați-l în parametrul Walker când se invocă meniul.

    Ne uităm la un exemplu. Luate codul metoda start_el () neschimbat. Folosind ca șablon:

    Acum, atunci când apelați meniul indică Walker dumneavoastră:

    Efectuat, acum fiecare element de meniu se va baza pe schema HTML ne este necesar.

    Codul wp meniul nav. wp-include / nav-menu-template.php WP 4.8.1

    Sunt funcții conectate

    Din eticheta: nav_menu (meniul de navigare)

    Bine ai venit Timur! Te rog spune-mi, este posibil să se deducă wp-meniu este motorul WordPress. Într-un forum un director în cazul în care doriți să afișați meniul pe wp, într-un alt el wp. Se pare că este posibil să se conecteze la WP și priinkludit orice fișiere de la WP. În ce direcție să se gândească? Vă mulțumim!

    Există o soluție:

    includ ( './wp-load.php');
    ( 'Meniu' wp_nav_menu (array => 'orice');

    Dar este posibil să se optimizeze într-un fel, nu întreaga încărcare WP, ci numai ceea ce se referă la meniu? mulțumesc