Unterseiten mit Auszug

  • Dieser Code:

    HTML
    <ul>
     <?php wp_list_pages('title_li=&child_of='.$post->ID); ?>
    </ul>

    erzeugt eine Liste, wobei die Unterseiten der aufrufenden Seite als Listenelemente angezeigt werden. Die Titel sind die Links. Schon mal nett. Ich würde das nur gerne noch "aufbohren" und eine Art Auszug mitgeben. Sowas in der Art wie:

    - Seite 1
    Auf Seite 1 gibt es tolle Dinge zu lesen

    - Seite 2
    Die zweite Seite ist nicht so toll

    Derzeit werden nur die Links zu Seite 1 und Seite 2 angezeigt. Ich denke, man könnte, wenn man die Unterseiten anlegt, mit benutzerdefinierten Feldern arbeiten? Und wenn ja, wie kommen die in die Liste auf der Elternseite?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Jetzt aber. Das mit dem Exzerpt klappt schon. Und zwar so:

    PHP
    <ul>
    <?php $page_query = new WP_Query('post_type=page&post_parent=5'); ?>
    <?php while ($page_query->have_posts()) : $page_query->the_post(); ?>
    <?php endwhile; ?>
    <li>
     <a href="<?php the_permalink() ?>" title="<?php printf(__('Permanenter Link zu %s', ''), the_title_attribute('echo=0')); ?>"><?php the_title(); ?></a>
     <?php the_excerpt('den Rest lesen &raquo;'); ?>
    </li>
    </ul>


    Mit einem kleinen Schönheitsfehler: Es wird nur ein Child angezeigt. Elternseite in diesem Beispiel ist die Seite mit der ID 5. Wo bleibt der Rest der Kinder??? :eek: Hülfe?

  • Na gut, wenn keiner antwortet, beende ich hiermit meine Unterhaltung mit mir selber. ;-) Die Lösung ist, dass der Listenpunkt außerhalb der while-Schleife saß. Der gehört natürlich in die while-Schleife. :roll:

    Muss also so aussehen:

    PHP
    <ul>
    <?php $page_query = new WP_Query('post_type=page&post_parent=5'); ?>
    <?php while ($page_query->have_posts()) : $page_query->the_post(); ?>
    <li>
     <a href="<?php the_permalink() ?>" title="<?php printf(__('Permanenter Link zu %s', ''), the_title_attribute('echo=0')); ?>"><?php the_title(); ?></a>
     <?php the_excerpt('den Rest lesen &raquo;'); ?>
    </li>
    <?php endwhile; ?>
    </ul>

    So. Noch Fragen? :wink:

  • Na, da habe ich doch selber eine Frage. Vielleicht weiß jemand Rat? Ich benutze wie oben angegeben [COLOR="Blue"]the_excerpt[/COLOR]. Nun habe ich allerdings auf meinen Seiten, von denen nur der Auszug gezeigt wird, jeweils im oberen Bereich ein bisschen Text, den ich nicht auslesen lassen möchte.

    Da ist zunächst ein Link, dann kommen zwei P-Tags. Wie kann ich aus dem Excerpt das Link und P-Tags "ausschneiden"? Dabei sei gesagt: der Inhalt von A und P-Tags variiert, man kann also nicht einfach eine bestimmte Anzahl an Buchstaben oder Wörtern ausschneiden. Weiß jemand, wie man das bewerkstelligen kann? :roll:

  • So, ich bin ein Schritt weiter. Ich möchte also aus dem Excerpt etwas entfernen. Der A-Tag war übrigens nicht ungewollt. Der soll somit drin bleiben. :-)

    Die Situation ist also diese: Drei Absätze, wobei der letzte stehen bleiben soll.

    Die Lösung soweit: Anstatt [COLOR="Blue"]the_excerpt()[/COLOR] einfach ausgeben zu lassen, habe ich das hier gemacht:

    PHP
    $beschnitt = the_excerpt();
    preg_match_all( "/<p>(.*)<\/p>/siU", $beschnitt, $treffer );
    $letzter_absatz = array_pop( $treffer[0] );
    echo $letzter_absatz;


    Da passiert aber nichts. Es wird weiterhin der gesamte Inhalt aus [COLOR="blue"]the_excerpt[/COLOR] angezeigt. Testet man die Funktion auf einen 3-Absatz-Text (irgendwo weit entfernt von Wordpress, in einem einfachen PHP-Skript), funktioniert es. Aber [COLOR="blue"]the_excerpt[/COLOR] scheint sich irgendwie drüber hinwegzusetzen... Jemand eine Ahnung, warum?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!