Der erste Aufruf erfolgt direkt in der page.php und sorgt für eine Art Inhaltsverzeichnis mit allen untergeordneten Seiten der aktuellen Seite.
$sub_pages = wp_list_pages('title_li=&child_of='.$post->ID.'&sort_colum=post_name&echo=0');
if($sub_pages) {
echo '<div style="border: 1px solid red; margin: 10px auto; width: 90%;">';
echo '<div style="margin: 10px; font-weight: bold;">Inhaltsverzeichnis <span style="font-weight: normal;">[<a href="#" onclick="switchDirectory();" id="switcher">Anzeigen</a>]</span></div>';
echo '<ol id="directory" class="directory-hide">';
echo $sub_pages;
echo '</ol>';
echo '</div>';
}
Der zweite Aufruf erfolgt als Widget und soll sämtliche Seiten auflisten, die sich auf der selben Ebene befinden, wie die aktuell angezeigte Seite.
$related_pages = wp_list_pages('title_li=&depth='.$options['depth'].'&child_of='.$post->post_parent.'&sort_colum='.$options['orderby'].'&echo=0');
$related_pages_arr = explode("\n", $related_pages);
if($related_pages && is_page() && $post->post_parent <> 0) {
echo $before_widget . $before_title . $title . $after_title;
echo '<ul class="related-pages">';
for($i=0; $i < $options['limit']; $i++){
echo $related_pages_arr[$i];
}
echo '</ul>';
echo $after_widget;
}
Alles anzeigen
Das ist jetzt natürlich nur ein kleiner Auszug aus dem Widget. Am Widget selbst scheint es aber ohnehin nicht zu liegen, da es ohne den ersten Aufruf von wp_list_pages einwandfrei funktioniert.
Ein fester Einbau in die sidebar.php führt übrigens zum selben Ergebnis:
<li>
<ul>
<?php $related_pages = wp_list_pages('title_li=&depth=1&child_of='.$post->post_parent.'&sort_colum=post_name&echo=1'); ?>
</ul>
</li>
Vielleicht lässt sich da ja irgendwo ein Fehler finden? :)
Gruß
Whooper