Hallo zusammen
Ich rufe in meiner sidebar.php das Submenü (bzw. die Childpages) via...
<?php
$has_subpages = false;
$children = wp_list_pages('&child_of='.$post->ID.'&echo=0');
if($children) {
$has_subpages = true;
}
$children = "";
if(is_page() && $post->post_parent) {
$children = wp_list_pages("title_li=&include=".$post->post_parent ."&echo=0");
$children .= wp_list_pages("title_li=&child_of=".$post->post_parent ."&echo=0");
} else if($has_subpages) {
$children = wp_list_pages("title_li=&include=".$post->ID ."&echo=0");
$children .= wp_list_pages("title_li=&child_of=".$post->ID ."&echo=0");
}
?>
<?php if ($children) { ?>
<ul class="submenu">
<?php echo $children; ?>
</ul>
<?php } ?>
Alles anzeigen
...auf. Das funktioniert soweit aus alles. Allerdings ist es so, dass wenn ich einen Suchbegriff eingebe und es kommt zu keinem Treffer dann werden mir in der Sidebar ALLE Pages gelistet. Wenn es zu mindestens einem Treffer kommt werden KEINE Pages gelistet. Dazu den Inhalt meiner search.php:
<?php get_header(); ?>
<div id="main">
<div id="main_content">
<?php if (have_posts()) : ?>
<p class="info">Deine Suchergebnisse für: <strong><?php echo $s ?></strong></p>
<?php while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<div class="entry">
<?php the_content(); ?>
</div>
<?php endwhile; ?>
<p align="center"><?php next_posts_link('« Ältere Einträge') ?> <?php previous_posts_link('Neuere Einträge »') ?></p>
<?php else : ?>
<h2>Leider konnten wir auf Ihre Suchanfrage keinen Treffer finden.</h2>
<?php endif; ?>
</div>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Alles anzeigen
Mir ist leider der Zusammenhang in diesem Fall nicht ganz klar. Es wird ja in beiden Fällen mit der search.php gearbeitet nur mit dem Unterschied, dass wenn es nur einen reinen Text als Ausgabe gibt, WP alle Seiten (nur Seiten, keine Kategorien und sonstiges) auflistet. Woran liegt das? Bzw. wie kann ich das unterbinden, da in diesem Falle mein ganzez Layout zerrissen wird?
Ich wäre über Hilfe sehr dankbar!!!
Grüsse
Pixselig
PS:
Auch bei der direkten Eingabe eines falschen Page-Links in die Adresszeile kommt es zu obigem Phänomen. Hierzu noch meine 404.php:
<?php get_header(); ?>
<div id="main">
<h2>404 - Seite nicht gefunden</h2>
<p>Tut uns leid, aber die Seite nach der Sie gesucht hast, wurde leider nicht gefunden. Schreiben Sie uns bitte eine <a href="mailto:*******@***.**?subject=<?php echo get_bloginfo('name'); ?> - 404 Seite nicht gefunden">eMail</a>, dann helfen wir Ihnen gerne weiter.</p>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Auch hier wird nur blanker Text verwendet und alle Pages werden gelistet. Kann mir aber irgendwie nicht vorstellen, dass das alles mit dem "blanken Text" zu tun hat. Denke vieleher, dass WP in dies zwei Fällen Alle von mir erstellten Seiten als Childs einordnet. Doch warum? Und warum nicht, wenn es zu Suchtreffern kommt? Vielleicht weil dann zu anderen Seiten verlinkt wird und sich daher die Seitenstruktur verändert?
PPS: die Seite ist derzeit noch lokal da ich oft ohne Inet arbeite, leider ;(