Cum pot afișa meniuri diferite pentru pagini diferite?

9 nov. 2011, 10:27:01
Vizualizări: 25.7K
Voturi: 3

Am un site web care are un meniu principal (orizontal-sus) astfel:

Meniu principal
 - Acasă
 - Despre noi
 - Contact

Pe pagina principală am un link către pagina "Companie" astfel www.xyz.com/company.

Când sunt pe această pagină de companie vreau ca site-ul meu să schimbe elementele din meniu și să folosească acestea:

Meniu diferit
 - Acasă (același link către pagina principală care va duce utilizatorul la www.xyz.com)
 - Promoteri
 - Galerie
 - Hărți

Cred că pot face acest lucru folosind Conditional_Tags din WordPress, dar nu știu exact de unde să încep.

1
Comentarii

Există un plugin care face exact ce ai nevoie. Încearcă acesta: http://wordpress.org/extend/plugins/widget-logic/

User User
31 ian. 2013 20:14:41
Toate răspunsurile la întrebare 5
0

Puteți încerca în felul acesta. Acum vorbim despre pagini, puteți seta un șablon separat pentru pagina care necesită un meniu diferit. Aici funcționalitatea mai nouă a WordPress pentru meniuri este foarte utilă.

În primul rând, dacă utilizați funcționalitatea mai nouă pentru meniuri din WordPress, plasați acest cod în locul meniului curent:

<?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?>

Apoi, puneți acest cod în partea de sus a fișierului de șablon pe care îl veți utiliza pentru pagină. Acesta informează WordPress că acesta este un șablon de pagină.

<?php
/*
 Template Name: Denumiți șablonul aici
*/
?>

Apoi, plasați acest cod în șablonul dumneavoastră unde ar trebui să apară meniul pentru acest șablon:

<?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' =>    'template_menu' ) ); ?>

Acum trebuie să ne asigurăm că acestea vor fi activate. În fișierul functions.php al temei dumneavoastră, va trebui să plasați acest cod:

// Această temă utilizează wp_nav_menu() în două locații.  
register_nav_menus( array(  
  'primary' => __( 'Navigare Principală', 'numele_temei_dvs' ),  
  'template_menu' => __('Navigare Șablon', 'numele_temei_dvs')  
) ); 

Odată ce toate acestea sunt făcute, tot ce trebuie să faceți este să mergeți în panoul de administrare > Aspect > Meniuri și să creați meniurile acolo. După creare, salvați, iar în partea stângă vă va oferi opțiunea de a alege unde să plasați fiecare meniu prin intermediul meniurilor derulante.

După ce toate acestea sunt configurate, atunci când creați o pagină nouă, tot ce trebuie să faceți este să selectați șablonul pe care doriți să-l utilizați.

Sper că acest lucru vă ajută. Dacă aveți întrebări, nu ezitați să întrebați.

9 nov. 2011 23:22:57
0

Meniu diferit pe diferite pagini folosind câmp personalizat în pagină --> functions.php

function shortcode_nav_menu_args( $args = '' ) {
    //dacă există câmpul personalizat cp_menu în pagină, obține ID-ul meniului (număr)
    //altfel obține meniul implicit
    $menu = get_post_meta(get_the_ID(), 'cp_menu', true);
    if(isset($menu)) { 
        $args['menu'] = $menu; 
    }
    return $args;
}
add_filter( 'wp_nav_menu_args', 'shortcode_nav_menu_args' );
17 mar. 2017 13:55:26
0

Puteți utiliza plugin-ul gratuit Conditional Menus. Îl folosesc în proiectele mele și funcționează întotdeauna perfect!

11 feb. 2020 15:28:59
1

Etichetele condiționale ar fi probabil soluția. Cum apelezi meniul tău? Presupun că folosești wp_list_pages()?

Dacă da, poți utiliza argumentul exclude, folosind ceva similar cu codul de mai jos (evident, ajustează numerele paginilor și etichetele condiționale după nevoile tale) -

<?php
if(is_front_page()) :
    $exclude = '10,11,12';
elseif(is_page(15)) :
    $exclude = '1,2,3';
endif;
wp_list_pages('title_li=&depth=1&exclude=' . $exclude);
?>
9 nov. 2011 12:50:19
Comentarii

Dar fișierul meu are acest cod wp_list_pages('title_li=&depth=0&exclude=' . get_inc_pages("pag_exclude_") .'&sort_column=menu_order'); ?>

Anshul Anshul
10 nov. 2011 08:56:59
0

Există un plugin pentru asta care pare promițător.

24 oct. 2014 00:00:16