Wordpress: Statische Inhalte und Artikel auf einer Seite
Bei meiner Recherche im Internet taucht immer wieder der Wunsch auf, statische Inhalte und Blogfunktion auf einer Seite darzustellen. Die Startseite dieses Blogs besteht genau aus dieser Kombination. Die Lösung für diese Anforderung wird auch Bestandteil meines Projektes ” Wordpress als CMS” sein. Darüber werde ich eine kleine Serie schreiben. Jetzt aber zur Umsetzung von statischen Inhalten und Artikeln auf einer Seite.
Zunächst zum Ablauf. Welche Schritte sind notwendig?
1. Erstellung einer statischen Seite, die den Begrüßungstext enthält
2. Die statische Seite wird zur Startseite
3. Etwas Programmierung, ein eigenes Template
4. Das Template wird der statischen Seite zugewiesen
1. Erstellung einer statischen Seite, die den Begrüßungstext enthält
Ich gehe mal davon aus, das die meisten Leser mit den grundlegenden Funktionen von Wordpress vertraut sind und werde hier nicht weiter auf das Anlegen einer statische Seite eingehen. Also, Seite z.B. “Home” anlegen und Text eingeben.
2. Die statische Seite wird zur Startseite
Unter Einstellungen > Lesen wird die neu angelegte Seite als Startseite festgelegt.

Soweit, so gut?
Natürlich nicht! Die Seite erscheint nun als Startseite, aber noch ohne Artikel.
3. Etwas Programmierung, ein eigenes Template
Wordpress verwendet zur Darstellung der statischen Seiten die im Verzeichnis des Themes abgelegte Datei page.php. Das ist Standard und passiert automatisch. Für unsere Darstellung ist die Erstellung eines weiteren Templates notwendig. Als Basis dient die schon genannte Datei page.php, die einfach kopiert und z.B. page-with-news.php abgespeichert wird. Als erstes ändert man die Kommentarzeile oben.
<?php
/*
Template Name: Statische Seite mit News
*/
?>
Möchte man statische Inhalte und die Blogfunktion in einem Template umsetzen so ist der sog. Loop für jedes Element (statischer Inhalt und Artikel) einzeln zu verwenden.
<?php get_header(); ?>
...
...
<div id="content">
<div id="content-text">
<?php
// 1. Loop um den Text der Seite anzuzeigen
if (have_posts()) : while (have_posts()) : the_post();
?>
<?php the_content(); ?>
<?php endwhile; ?>
<?php endif; ?>
<h4>Aktuelles</h4>
<div>
// Blogeinträge abfragen cat=0 sind alle Kategorien, showposts=10 zeigt 10 Artikel an
<?php query_posts('cat=0&showposts=10');?>
// 2. Loop für die Artikel
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div id="post-<?php the_ID(); ?>">
<h1><a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1>
<?php the_content(__('weiterlesen...')); ?>
<?php wp_link_pages('before=<div>&after=</div>&next_or_number=number&pagelink=<span>%</span>'); ?>
<?php the_tags('<p>TAGS: ', ', ', '</p>'); ?>
<div>
<span><?php the_time('l, F jS, Y'); ?></span>
<span><?php the_category(', '); ?></span>
<span><?php comments_popup_link(__('No Comments'), __('1 Comment'), __('% Comments')); ?></span>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>
...
...
<?php get_footer(); ?>
4. Das Template wird der statischen Seite zugewiesen
Als letzten Schritt muß das neue Template der statischen Seite zugewiesen werden. Das geht über Seiten > Bearbeiten “Home” > Quick Edit > Template auswählen. Hier wird auch klar warum der Kommentar am Anfang des Templates wichtig ist. Er wird im Auswahlmenü angezeigt.

Nun sollte der statische Text der Seite Home und die Artikelliste zusammen angezeigt werden. So wie z.B. auf der Startseite dieses Blogs.
9 Kommentare to Wordpress: Statische Inhalte und Artikel auf einer Seite
WICHTIG!!!
zwischen
UND
fehlt ein sonst klappt das nicht und es kommen nur fehler
sonst perfekt genau das habe ich grade gefühlte 100std gesucht aber nirgends gefunden..
konnte zwar über das template dyn. artikel anzeigen aber dann wurde der inhalt der statischen seite nicht mehr angezeigt was ja letztendlich sinnlos ist^^
gruß can
Hallo Can,
leider konnte ich deinen Kommentar nicht so richtig entschlüsseln. Möglicherweise hattest Du Codebeispiele eingefügt, die dann rausgefiltert wurden. Dennoch habe ich den Fehler gefunden. Nach dem letzen <?php endwhile ?>
fehlt noch ein <?php endif ?>, letzte schließende div-Tag folgt danach nicht davor.
Ich habe das korrigiert. Nun sollte es funktionieren.
Gruß Andreas
Hallo,
super Tutorial, genau so etwas suche ich schon länger.
Hab das auch gleich mal ausprobiert und zusätzlich nach deinem letzten endwhile noch die Links für next_posts und previous_posts integriert. Nur leider funktionieren genau die nicht, er spring leider nicht zwischen den Artikel hin und her. Weißt du vielleicht woran das liegen könnte? Wäre für jede Hilfe froh, suche schon seid drei Tagen nach einer Lösung.
Danke und Grüße
Nils
Hallo Nils,
zunächst ist mir aufgefallen, dass Du next_posts und previous_posts verwendest. Es muss heißen: next_post() und previous_post().
In meinem Tutorial beschreibe ich die Beitragsliste (pages.php). Die o.g. Funktionen werden aber in der Einzelbeitragsansicht (single.php) verwendet.
http://doku.wordpress-deutschland.org/Template_Tags/next_post
Liste und Einzelansicht in einer Seite (bzw. einem Loop) kann eigentlich nicht funktionieren.
Gruß Andreas
Hallo Andreas,
erst einmal vielen Dank für deine schnelle Antwort. Aber jetzt hast du mich völlig verwirrt.
Eigentlich wollte ich nur eine Auflistung aller Artikel auf einer statischen Seite nach derem statischem Inhalt darstellen und zwar mit Link zu älteren Artikeln und wieder zu neueren Artikeln. Also eigentlich so, wie du es auch auf deiner Home-Page hast, nur das es bei mir nicht die Home sondern eine andere statische Seite ist.
Geht dies den generell mit Wordpress? Würde halt gern Wordpress als klassisches CMS nützen ohne aber die Artikel-Funktion ganz zu verlieren.
Hast du da vielleicht noch einen Tip für mich?
Grüße
Nils
Hallo Nils,
verwirren wollte ich Dich eigentlich nicht!
wenn ich das richtig verstehe wolltest Du:
1. Eine statische Seite mit Inhalt und Artikelfunktion.
Hier ist die Lösung ganz einfach. Gehe die Positionen des Tutorials durch
und lasse die Zweite Pos. einfach weg.
In deinem Fall wird deine statische Seite nicht zur Startseite.
2. Links zu älteren und neueren Artikeln
Jetzt verstehe ich, was Du meinst. next_post() und previous_post() sind
hierfür die falschen Funktionen. Diese gehen eben nur in der Einzelansicht.
Für ältere und neuere Artikel in in der Listeansicht benötigst du folgendes
nach endwhile
....
<?php next_posts_link('« Ältere Einträge') ?> <?php previous_posts_link('Neuere Einträge »') ?>
Hallo Andreas,
vielen Dank, aber leider funktioniert es immer noch nicht. Bin noch einmal dein Tutorial von vorn durch und habe den zweiten Punkt weg gelassen.
Habe sechs Dummy-Artikel angelegt und lasse mir über query_posts nur drei davon anzeigen. Wenn ich nun auf den Link “Ältere Einträge” klicke, passiert leider gar nichts. Es bleiben immer nur die gleichen drei Artikel stehen.
Verstehe nicht warum, klingt doch alles sehr logisch, was du schreibst. Oder muss ich noch irgend etwas im Backend einstellen? Habe dort halt eine andere statische Seite als Startseite eingerichtet, sollte doch aber kein Problem darstellen, oder?
Grüße
Nils
Hallo Nils,
Habe das ganze mal mit einer statischen Seite getestet, die nicht die Startseite ist
Test.
Dort findest weitere Infos.
Hallo Andreas,
1. Ich hab den ganzen Quelltext in einer seperaten Template-Datei mit dem Namen: page_news.php.
Das Template hat den Namen: News bekommen und wurde der statischen Seite zugewiesen.
2. Im Backend habe ich unter Einstellungen / Lesen die Anzahl der angezeigten Artikel auf 3 reduziert. Und im query_posts habe ich showposts auch auf 3 gesetzt.
Leider funktioniert es nicht, auch wenn ich den query_posts ganz weg lasse, bekomme ich das selbe Ergebnis, die Blätterfunktion zeigt mir nicht die älteren oder neueren Artikel an.
Habe ich da jetzt einen gedanklichen Fehler? Ich verstehe es gerade gar nicht.
Grüße
Nils
Einen Kommentar hinterlassen
Suchen
Kategorien
Letzte Artikel
Letzte Kommentare
- walter bei Google Maps: KML Datei einbinden
- accessories bei 1. SEO Stammtisch in Fulda war ein voller Erfolg!
- Nils bei Wordpress: Statische Inhalte und Artikel auf einer Seite
- admin bei Wordpress: Statische Inhalte und Artikel auf einer Seite
- Nils bei Wordpress: Statische Inhalte und Artikel auf einer Seite

14. Dezember 2009