child pages auf einer Unterseite anzeigen

Unterseiten einer gemeinsamen Elternseite anzeigen ohne dabei die aktuelle Unterseite nochmals zu verlinken. Hier eine Lösung dafür.

Parent page mit child pages
Parent page mit child pages

Du hast jede Menge an statischen Seiten, die auch Unterseiten – also child pages- haben. Gerne tätst Du die auch sinnvoll intern verlinken. Du möchtest alle Unterseiten einer Parent Seite anzeigen, aber nicht die aktuelle Unterseite. – Damits gefunden wird das ganze auch mit englischen Bezeichnungen. Child pages auf einer parent Seite anzeigen, aber nicht die aktuelle child page. :zwinker:

Ich bringe hier eine Lösung, die den template tag wp_list_pages nutzt. Zuerst hole ich mir die ID der aktuellen Seite, dann prüfe ich, ob es überhaupt child pages gibt, danach gestalte ich die Ausgabe und statt der IDs trage ich die nötigen Variablen ein.

child pages auf parent page anzeigen, ohne die aktuelle child page

<?php
global $wp_query;
if($post->post_type == 'page'){
        $current=$post->ID;
        }
if( empty($wp_query->post->post_parent) ) {
$parent = $wp_query->post->ID;
} else {
$parent = $wp_query->post->post_parent;
}
echo'<p class="related">...weitere Artikel zum Thema:</p><ul class="related">';
wp_list_pages("exclude=$current&title_li=&child_of=$parent");
echo'</ul>';
?>

das da gibt mir die ID der aktuellen Seite zurück

if($post->post_type == 'page'){
        $current=$post->ID;
        }

das da prüft, ob es Unterseiten gibt -also es prüft eigentlich, ob die Seite eine Elternseite /parent hat.

if( empty($wp_query->post->post_parent) ) {
$parent = $wp_query->post->ID;
} else {
$parent = $wp_query->post->post_parent;
}

echo gibt immer etwas zurück, und zwar genauso wie es da steht ;)

der Rest ist wp_list_pages und dazu gibts hier einige Artikeln.

Nun kannst auch Du Unterseiten auf Unterseiten ausgeben, ohne die aktuelle Unterseite nochmals anzuzeigen. – :zwinker:

15 Kommentare (und 1 Ping/Tweet) zu: "child pages auf einer Unterseite anzeigen"
  1. Hallo,
    danke erstmal für den Code, funktioniert auch soweit. Ich habe noch ein kleines Problem und zwar, wenn ich jetzt 2 Unterseiten ausgeben lasse und dann eine Unterseite aufrufe, verschwindet der Menüpunkt der aktuellen (aufgerufenen) Seite und nur der Menüpunkt der anderen Unterseite ist noch zu sehen. Wie kann ich das beheben? Also wie kann ich alle Unterseiten dauerhaft anzeigen lassen? Wenn das nicht möglich sein sollte, kann ich denn vor den Unterseiten nochmals die Jeweilige Überseite anzeigen lassen aber das auch nur wenn Unterseiten verfügbar sind? Wäre dankbar für Hilfe…

    mfg René

    René24.04.09 08:28 | # |

  2. Hallo René

    ich habe es extra so gemacht, dass die aktuelle Seite nicht verlinkt ist, weils dann ja doppeltmoppelt -wenn Du dies aber so haben magst, dann lösche bei

    wp list pages das da

    exclude=$current&

    texto24.04.09 10:09 | # |

  3. erstmal vielen dank für den code, prima sache :-)

    gibt es denn auch eine möglichkeit, die abfrage umzudrehen? also zu fragen, ob es unterseiten gibt. wenn ja, zeig welche an, wenn nein, spare dir den part mit dem .

    hintergrund: ich will den code für die ausgabe einer sub-navi verwenden und bekomme bei seiten ohne unterseiten eine leere -Liste…

    vielen dank im voraus :-)

    Simon30.04.09 20:27 | # |

  4. Hallo Simon

    sowas da

    navigation aufteilen

    ;)

    texto30.04.09 20:33 | # |

  5. Tsss… Du bist echt super!

    Freue dich auf ein kleines Geschenk von deiner Amazon-Wunschliste :-)

    Simon30.04.09 20:43 | # |

  6. :oops: Danke – lg

    texto30.04.09 21:07 | # |

  7. Wie ist es wenn ich die Unterseiten von Unterseiten anzeigen lassen möchte?

    Also:

    Hauptseite:
    –Unterseite
    —-Unterseite
    —-Unterseite

    und dabei die Links zu den Unterseiten 2. Grades auf denen 1. Grades angezeigt werden sollen?

    Ricarda27.05.09 19:19 | # |

  8. Du müßtest Dir immer für die Unterseiten ,die noch UnterUnterseiten haben ein eigens template machen und dies dann rechts beim Erstellen auswählen:

    <?php
        $pageChildren = $wpdb->get_results("
            SELECT *
            FROM $wpdb->posts
            WHERE post_parent = ".$post->ID."
            AND post_type = 'page'
            ORDER BY menu_order
        ", 'OBJECT');
        if ( $pageChildren ) :  foreach ( $pageChildren as $post ) :  setup_postdata( $post ); ?>
     
    Ausgabe
     
    <?php endforeach;  endif;?>

    dies hat mit obigen nicht soviel zu tun, kommt aber drauf an was Du auf der Hauptseite anzeigen magst

    lg

    texto28.05.09 01:18 | # |

  9. Danke für die schnelle Antwort.
    Werd ich heute mal ausprobieren :)

    Ricarda28.05.09 05:06 | # |

  10. Vielen herzlichen Dank für diesen Codeschnipsel! Hat sofort prima funktioniert. Kompliment. Was muss ich aber ändern, damit in der dritten Unterseite die Elternmenüpunkte der zweiten Ebene nicht verschwinden, sondern stehenbleiben? Vielen Dank schon einmal für die Hilfe.

    Marko09.06.09 17:10 | # |

  11. Marko meinst Du den im Artikel? wenn ja dann versuch für dein weiteres Problem den Code, den ich Ricarda geantwortet habe

    texto10.06.09 06:50 | # |

  12. Oh sorry, hab ich vielleicht nicht richtig formuliert. Ich versuch’s noch einmal: sobald ich die dritte Unterseitenebene erreicht habe, stehen dort nur noch die Schwesternelemente, die Elternmenüpunkte sind verschwunden. Jetzt meine Frage, ob man die Funktion so schreiben kann, das die Elternelemente auch in der dritten Unterseitenebene noch zu sehen sind?

    Marko10.06.09 07:52 | # |

  13. Hi Marko an und für sich dürften da niemals die parents stehen, sondern auf der parentSeite die Kinder und 1 Artikel der Seite

    darum verwies ich dich ja auf den Code Nr 8

    lg

    texto10.06.09 12:05 | # |

  14. Servus, habe da noch ein ganz anderes Problem. Ich möchte auf den Unterseiten einen Link zur Elternseite haben. Ich hab jetzt überall gesucht und finde keine Lösung.

    die subpages anzuzeigen ist ja kein problem, aber dazu noch nen link zur übergeordneten seite zu generieren bringt mich am rande des wahnsinns.

    ich müsste für die unterseiten jeweils ein template erstellen, in dem ich den link manuell für jede überseite einfüge, das klappt. das such ich auch nicht. ;) wer kann helfen?

    Zvent23.09.09 20:15 | # |

  15. Zvent hilft dir das mal weiterGet parent, grandparent.?

    texto23.09.09 23:58 | # |

Pings-Tweets
  1. fast privat
    [...] Simon, der mir dieses Buch von Alois Brandstetter aus meiner Amazon Wishlist schenkte, wie er in diesem Kommentar angedeutet ...
  2. Tweets
  • Name and Mail are required.