WordPress Startseite “Page” und letzte Artikel

Bei vielen Websites die auf WordPress basieren, will man auf der Startseite eine Seite „Page“ verwenden, jedoch auch eine Liste der letzten Artikel. Ein Mix aus beiden Möglichkeiten.

Über den Administrationsbereich von WordPress kann man dieses nicht einstellen, mit einer kleinen Änderung in den WordPress-Theme Dateien funktioniert dieses jedoch:

Zunächst erstellt man jedoch eine Seite die als Grundlage der Startseite verwendet werden soll und speichert diese. Der Inhalt kann zu diesem Zeitpunkt erst mal leer bleiben, lediglich ein Namen muss die Seite haben.

Nun klickt man erneut auf bearbeiten bei der gerade erstellten Seite und merkt sich die Page-ID der Seite. Diese sieht man zum Beispiel in der URL, wie man im Screenshot sieht.

WordPress Page-ID auslesen

WordPress Page-ID auslesen

Jetzt konfiguriert man diese Seite als Startseite, dieses geht unter: “Einstellungen => Lesen => Startseite“. Die Option Startseite stellt man auf “Eine statische Seite” und wählt die gerade erstellt Seite.

Nun muss noch die Liste der letzten Artikel auf der Startseite angezeigt werden, dafür ist es notwendig eine Theme-Datei zu ändern. Dieses kann man gelegentlich nicht 1 zu 1 übernehmen, da jedes Template ein wenig unterschiedlich in der Struktur ist. Dieses Beispiel sollte jedenfalls beim default Theme „twentyeleven“ von WordPress 3.4.1 funktionieren (bei den Meisten anderen Themes natürlich auch).

Sucht die Datei page.php in eurem aktiven Template-Ordner /themes/twentyeleven/page.php ( twentyeleven muss durch den Namen des aktiven Templates ersetzt werden. ) Erstellt eine Kopie von der Datei und nennt diese „page-ID-DER-STARTSEITE.php“, in diesem Beispiel also „page-4.php“. Das bewirkt, dass beim Aufruf dieser Seite nicht das normale Page-Template verwendet wird, sondern die Kopie mit der ID im Namen. (Es in der Hierarchie von WordPress einen höheren Stellenwert)

Da Ihr die Datei kopiert habt, sollte sich der Inhalt der ursprünglichen page.php in dieser Datei befinden. Such dort die Zeile:

1
<?php get_template_part( 'content', 'page' ); ?>

Fügt hinter dieser Zeile folgenden Code-Block ein:

1
2
3
4
5
6
7
8
9
<h2>Die letzten 5 Artikel:</h2>
<?php
    $lastposts = get_posts('showposts=5');
    foreach($lastposts as $post) :
    setup_postdata($post);
?>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title('<h3>', '</h3>'); ?></a>
<?php the_excerpt(); ?>
<?php endforeach; ?>

Nun sollten auf der Startseite die letzten fünf Posts angezeigt werden. Man kann hier noch einige Modifikationen vornehmen, zum Beispiel die Anzahl verändern, indem man bei “showposts=5″ eine andere Zahl einträgt.

Will man nur Posts aus einer Kategorie anzeigen, ändert man die gleich Zeile so:

1
    $lastposts = get_posts('showposts=5&category=3');

Die komplette Liste der möglichen Parameter stehen in der WordPress-Hilfe der get_posts()-Funktion.

VN:F [1.9.22_1171]
Rating: 4.9/5 (4 votes cast)
WordPress Startseite "Page" und letzte Artikel, 4.9 out of 5 based on 4 ratings

Schlagwörter: ,

3 Gedanken zu „WordPress Startseite “Page” und letzte Artikel

  1. Uli

    Hallo,
    der Tipp ist prima und hat mir sehr geholfen. Jetzt habe ich nur ein Problem: ich möchte nicht den kompletten Artikel ausgeben und die Funktion the_excerpt() übernimmt die html Formatierungen nicht, wodurch der Artikel nicht wie gewünscht ins Auge fällt.
    Gibt es da noch einen Trick, wie ich das in den Griff bekommen kann?

    Gruß

    Uli

    Antworten
  2. Alex Artikelautor

    Hi,

    man könnte auch the_content() nehmen und den Inhalt mit substr() kürzen. Das Problem dabei ist, dass dann evtl. “flasches” html heraus kommt, weil die Tags- entsprechend abgeschnitten werden.

    Besser wäre the_content und den <–more–>-Tag, siehe:
    the_excerpt() vs. the_content()

    Antworten

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>