O przydatności WP jako prostego i szybkiego (w instalacji, niekoniecznie w działaniu 🙂 ) systemu CMS wie prawie każdy. Jego sławna cecha bycia SEO-friendly rozpropagowała go dość mocno na świecie. Jednak pozostaje on nadal głównie platformą blogową i aby przystosować go do nowego zadania, trzeba poznać trochę jego wnętrze.
Większość systemów zarządzania treścią potrzebuje w pewnym momencie sensownego sposobu wyświetlania określonego menu na różnych podstronach, niezależnie od głębokości zagnieżdżenia. Banalne zadania, ale patrząc na różne fora, przysparza wielu problemów. Poniżej moje rozwiązanie:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php $thisPage = get_post($post->ID); if(is_array($thisPage->ancestors)) { $ancestor = end($thisPage->ancestors); } if($ancestor) { // jeśli strona ma rodziców wyświetlamy wszystko dla głównego rodzica $children = wp_list_pages('title_li=&child_of=' . $ancestor . '&echo=0'); } else { // jeśli nie, to dla danej strony $children = wp_list_pages('title_li=&child_of=' . $post->ID . '&echo=0'); } if ($children) { // nie chcemy wyświetlać pustego elementu ?> <ul> <?php echo $children; ?> </ul> <?php } ?> |
6 odpowiedzi na “WordPress jako prosty(?) CMS”
Super, dzięki. btw. Kod wklejasz przy użyciu jakiejś wtyczki, czy to sam to ładnie kolorujesz?
@Robert: kredki i pędzelki i gotowe! A tak poważnie to jest to wp-syntax. Przy okazji – okazało się, że powyższy kod miał błąd (wyrzucał ostrzeżenie kiedy
$thisPage->ancestors
było puste), ale już go poprawiłem.A można jakiś przykład działania?
Np. na tej stronie
[…] kubazwolinski.com 00:26 03/02/2009 zwolin on-line » WordPress jako prosty(?) CMS kubazwolinski.com/…10/24/wordpress-jako-pros… Pokaż reakcje /* */ inne strony z tej witryny + obserwuj co […]
Dzięki, właśnie tego szukałem – mam takie menu na jednym z serwisów i przydało mi się 🙂