Kategorie
wordpress

WordPress jako prosty(?) CMS

O przy­dat­no­ści WP jako pro­ste­go i szyb­kie­go (w insta­la­cji, nie­ko­niecz­nie w dzia­ła­niu 🙂 ) sys­te­mu CMS wie pra­wie każ­dy. Jego sław­na cecha bycia SEO-frien­dly roz­pro­pa­go­wa­ła go dość moc­no na świe­cie. Jed­nak pozo­sta­je on nadal głów­nie plat­for­mą blo­go­wą i aby przy­sto­so­wać go do nowe­go zada­nia, trze­ba poznać tro­chę jego wnętrze.

Więk­szość sys­te­mów zarzą­dza­nia tre­ścią potrze­bu­je w pew­nym momen­cie sen­sow­ne­go spo­so­bu wyświe­tla­nia okre­ślo­ne­go menu na róż­nych pod­stro­nach, nie­za­leż­nie od głę­bo­ko­ści zagnież­dże­nia. Banal­ne zada­nia, ale patrząc na róż­ne fora, przy­spa­rza wie­lu pro­ble­mó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 } ?>