-
O wyświetlaniu podstron w Wordpress
dodano 03.10.2007 / komentarzy: 0 / autor: palmiakWczoraj przypomniał o sobie pewien znajomy, który pyta mnie czasem o problemy związane z Wordpressem. Przypomniało mi to jego stare pytanie. Dlatego raz jeszcze opiszę ja w Wordpressie zrobić sztuczkę która pozwala na pokazywanie tylko “dzieci” strony.
Wyobraźmy sobie sytuacje gdzie mamy dwie strony:
X oraz Y, do X należą podstrony X1, X2, i tak dalej, odpowiedno do Y,
należą Y1, Y2. Jak narazie nic trudnego. Tutaj pojawia sie
pytanie: Jak wyswietlić w SIDEBARZE, podstrony X1, X2 [ oraz odpowiednio
Y1,Y2 ], jednak aby nie wyświetlały sie strony nadrzędne X,Y?Najpierw musimy sprawdzić czy strona-rodzic istnieje (może w końcu być zły link czy coś) oraz czy to w co klikneliśmy jest stroną.
Kiedy już mamy tą pewność pobieramy ID strony i staramy się odnaleźć go w bazie, a następnie namierzyć jego rodzica (robimy to w pętli aż znajdziemy tego ostatecznego rodzica). Wiedząc już coś takiego pozostaje nam tylko wypisać strony-dzieci za pomocą
<?php wp_list_pages(‘child_of=’. $parent_id); ?>
gdzie
$parent_idto numer ID rodzica.Teraz czas na praktykę.
W naszego
sidebar.phpmusimy wkleić następujący kod<?php
global $notfound;
if (is_page() and ($notfound != ‘1′)) {
$current_page = $post->ID;
while($current_page) {
$page_query = $wpdb->get_row("SELECT ID, post_title, post_status, post_parent FROM $wpdb->posts WHERE ID = ‘$current_page’");
$current_page = $page_query->post_parent;
}
$parent_id = $page_query->ID;
$parent_title = $page_query->post_title;if ($wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent = ‘$parent_id’ AND post_status != ‘attachment’")) {
?><ul class="list-page">
<?php wp_list_pages(‘child_of=’. $parent_id); ?>
</ul>
<?php } } ?>
Musimy mieć jeszcze menu, które będzie pokazywało strony-rodziców, a takie otrzymamy następującym kodem:
<ul>
<?php wp_list_pages(’sort_column=menu_order&title_li=&depth=-1 ‘); ?>
</ul>
I tak oto problem Karola zostaje rozwiązany. Mam nadzieję, że innym też się to przyda.
Przeczytaj też podobne wpisy:


















Napisz komentarz