konto usunięte

Temat: jak wypisać wszystkie 'dzieci' danego 'rodzica'?

Witam.

tworzę stronę na Wp i napotkałam pewien problem, w zależności od strony na której się użytkownik znajduje powinno wyświetlać się inne menu, rozwiązałam ten problem kodem:
<?php
$post = $wp_query->post;
if ( is_page('5)) {
wp_nav_menu( array('menu' => 'o-firmie' ));
}
elseif ( is_page('7') || is_page('31') || is_page('43') || is_page('29') || is_page('33') || is_page('41') || is_page('39')) {
wp_nav_menu( array('menu' => 'produkty' ));
}
elseif ( is_page('35') || is_page('9') || is_page('47') || is_page('45')) {
wp_nav_menu( array('menu' => 'uslugi' ));
}
else {
wp_nav_menu( array('menu' => 'stale' ));
}
?>

chciałabym jednak stworzyć bardziej uniwersalny kod i zapisać by wszystkie podstrony należące do danego rodzica wyświetlały dany rodzaj wzorca menu. W jaki sposób można to zapisać?

Z góry dziękuję za podpowiedź.
Łukasz Piwowar

Łukasz Piwowar DigitalZone -
Interactive Agency

Temat: jak wypisać wszystkie 'dzieci' danego 'rodzica'?

Agnieszka Gąsewicz:


Nie wiem jak sprawdzić czy mają wspólnego rodzica, jednak mogę zaproponować lekkie odchudzenie tego kodu:


if (is_page(5)) {
$menu_slug = 'o-firmie';
}
elseif (is_page(array(7,31,43,29,33,41,39))) {
$menu_slug = 'produkty';
}
elseif (is_page(array(35,9,47,45))) {
$menu_slug = 'uslugi';
}
else {
$menu_slug = 'stale';
}

wp_nav_menu(array('menu' => $menu_slug));
Łukasz Piwowar edytował(a) ten post dnia 09.01.12 o godzinie 15:18

Temat: jak wypisać wszystkie 'dzieci' danego 'rodzica'?

http://codex.wordpress.org/Function_Reference/wp_list_...
W ten sposób wyświetlisz "dzieci" bez robienia menu dla każdej strony, tylko z tego co pamiętam działa tylko do jednego poziomu w dół.

konto usunięte

Temat: jak wypisać wszystkie 'dzieci' danego 'rodzica'?

Agnieszka Gąsewicz:
Witam.

tworzę stronę na Wp i napotkałam pewien problem, w zależności od strony na której się użytkownik znajduje powinno wyświetlać się inne menu, rozwiązałam ten problem kodem:
Lepiej będzie użyć custom fields (własne pola). Czyli najpierw dodajemy własne pole menu_slug w edycji strony, a potem w kodzie można je tak odczytać:
$menu_slug = get_post_meta($post->ID, 'menu_slug', TRUE));

Nie jest to bardzo eleganckie rozwiązanie, ale na pewno lepsze niż zaszywanie id-ków stron w kodzie.
Łukasz Piwowar

Łukasz Piwowar DigitalZone -
Interactive Agency

Temat: jak wypisać wszystkie 'dzieci' danego 'rodzica'?

Tomasz K.:

Można nawet w Edycji strony dodać listę wyboru pobierającą automatycznie wszystkie możliwe menu jakie są dodane. Choć tutaj już trochę więcej pracy.

konto usunięte

Temat: jak wypisać wszystkie 'dzieci' danego 'rodzica'?

Można to zrobić przy pomocy oddzielnych page templates dla wybranych stron ( http://codex.wordpress.org/Pages#Creating_Your_Own_Pag... ) lub tak jak napisałaś, sprawdzając ID rodzica. A czy przypadkiem
$post->post_parent
nie załatwi sprawy?

Następna dyskusja:

Pytanie - Jak to zrobić?




Wyślij zaproszenie do