WordPress als CMS: Kapitel eines Buches als Printausgabe anbieten – alle Beiträge auf einer statischen Seite
Alle Beiträge auf einer statischen Seite anzeigen braucht man oft, wenn man WP als CMS einsetzt. Entweder, um diese Posts als Printausgabe anzubieten oder weil man ganz was anderes damit gestalten mag. Wie auch immer. Beiträge auf der statischen Seite kann man anzeigen lassen. Sowohl als ganzen Beitrag oder nur bis zum more oder als excerpt oder mit einem benutzerdefiniertem Feld
Jede Menge Anfragen gibt es derzeit im Supportforum, ob man und wenn wie Beiträge auf einer statischen Seite anzeigen lassen kann. Der eine braucht alle Beiträge /Posts , weil er für ein Buch eine einfache Printausgabe anbieten mag.
Der andere brauchte eine Auflistung von Reiseberichten nach benutzerdefinierten Feldern, der dritte mag – aus welchem Grund auch immer alle Beiträge anhand eines benutzerdefinierten Feldes – aber die ganzen Beiträge nicht nur den Auszug.
Der vierte mag alle Beiträge auf der statischen Seite anzeigen lassen, aber nur bis zum “more” – also bis zum “weiterlesen. Mancher braucht einfach alle Beiträge, andere wiederum nur von bestimmten Kategorien.
»»
Article in English.
Wie immer:Code nicht einfach kopieren, kann sein, dass es dann nicht funktioniert. Ich zeige hier nur meine Lösung, vielleicht gibt es andere. Code kann weder in meinen Kommentaren noch per Email gesandt werden.
»» War dieser Beitrag für Dich hilfreich freu ich mich über einen Link oder ein Bookmark bei Mr.Wong, Yigg.de oder einem anderen Social Dienst. ![]()
Wer WordPress als CMS nutzt braucht oft statische Seiten mit einer Auflistung von Beiträgen aus dem normalen Loop. Mag man nur die Links zu den Beiträgen haben, dann ist dies leicht möglich (meine Sitemap hier ) braucht man jedoch den ganzen Inhalt oder nur den Inhalt bis zum “Weiterlesen” also dem “More” wird es nicht mehr so einfach.
Ob man dann die Beiträge nach einem benutzerdefinierten Feld aus der Datenbank holt oder nur von einer oder mehreren Kategorien ist dann fast Nebensache.
Alle Beiträge auf einer statischen Seite aufgelistet. Ganzer Inhalt. Zeitliche Ordnung umgedreht.
<?php /* Template Name: Alles */ ?> <?php get_header(); ?> <?php rewind_posts(); $my_query = new WP_Query('order=asc&showposts=500'); while ($my_query->have_posts()) : $my_query->the_post(); $do_not_duplicate = $post->ID; ?> <div class="post" id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title=" <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small> <div class="entry"> <?php global $more; $more = 1; the_content('Read the rest of this entry »'); ?> </div> </div> <?php endwhile; wp_reset_query();?> <?php get_sidebar(); ?> <?php get_footer(); ?>
Erklärung:
<?php /* Template Name: Alles */ ?> <?php get_header(); ?>
Liebes WordPress mein Template heißt: Alles.
Admincenter==>Schreiben==>Seite schreiben==>Titel vergeben==>Rechts das Template “Alles” aussuchen.
<?php rewind_posts();
Liebes WordPress fang von Vorne an und durchsuche die Datenbank neu.
Vielleicht gar nicht nötig, aber vielleicht steht oberhalb ein anderer Loop in Deinem Template, dann braucht man dies.
global $more; $more = 1;
Liebes WordPress irgendwo steht in einigen oder allen Beiträgen der more template tag, ignoriere den und zeige den ganzen Beitrag.
$my_query = new WP_Query('order=asc&showposts=500'); while ($my_query->have_posts()) : $my_query->the_post(); $do_not_duplicate = $post->ID; ?>
Liebes WordPress das ist mein individueller Loop. Ordne die Beiträge Absteigend also “asc” und zeige mir 500.
Klar wird man kaum 500 Beiträge auf einer statischen Seite anzeigen lassen, das ist ja irre zu lesen. Aber eventuell hast Du eingestellt, dass WordPress nur 10 pro Seite anzeigen darf. Dann ist dies ganz gut, damit mehr als 10 erscheinen oder eben alle . Ein bisschen Tricky, aber mir erschien es am einfachsten.
Jetzt kommt dann die Ausgabe. Achte darauf, dass dort *Dein* Html steht und darunter das Ende des Loops.
<?php endwhile; ?> <?php get_sidebar(); ?> <?php get_footer(); ?>
Liebes WordPress jetzt höre auf- endwhile- und hole die Sidebar und den Footer.
Anschauen:In der Mitte auf meiner Testseite. Ich zeige allerdings weniger Beiträge als 500 an, ist mir zu heavy-nur so als Beispiel doppelten Content zu riskieren.
Alle Beiträge aus der Kategorie [mit der ID=25] auf einer statischen Seite. Zeitliche Ordnung wie immer. Aber nur bis zum “Weiterlesen”…
<?php /* Template Name: Egoshooting */ ?> <?php get_header(); ?> <?php rewind_posts(); $my_query = new WP_Query('cat=25&showposts=500'); while ($my_query->have_posts()) : $my_query->the_post(); $do_not_duplicate = $post->ID; ?> <div class="post" id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title=" <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small> <div class="entry"> <?php global $more; $more = 0; the_content('Read the rest of this entry »'); ?> </div> </div> <?php endwhile; ?> <?php get_sidebar(); ?> <?php get_footer(); ?>
Erklärung:
Prinzipiell steht es oben hier nur die Änderungen:
global $more; $more = 0;
statt 1 auf 0
Angabe der Kategorie mit cat und dann die ID der Kategorie, mehrere Kategorien IDs mit Komata trennen.
$my_query = new WP_Query('cat=25&showposts=500');
Anschauen: Ganz ganz unten auf meiner Testseite. Ich zeige nur einen Beitrag, man sieht aber, dass der *weiterlesen* Link da ist.

hiho,
vielen dank, sehr hilfreich
kannst du auf die schnelle erklären, wie ich den aktuellsten beitrag als erstes anzeige?
martin12.12.07 01:20 | # |
Hi martin ja kann ich
den code zweimal tippseln
aber einmal..ganz oben..
das zweite mal
also das 1. Mal nur einen Beitrag anzeigen lassen und zwar in zeitlich Reihenfolge absteigend (DESC)
das 2. Mal alle anzeigen lassen -den 1. offset=1)
ungetestet aber müßte funktionieren
lg
texto12.12.07 10:29 | # |
vielen dank, aber ich müsste nochmal nachhacken:
wenn ich dies für mehr als ein seite machen will, sprich mehrere statische seiten habe, dann müsste ich ja jeder seite ein eigenes template zuordnen, oder?! wie kann ich das aber steuern?
wäre für hilfe überschwänglichst dankbar …
martin17.12.07 23:35 | # |
hi Du kannst es steuern indem Du dem Template dann oben einen anderen Namen gibst und dieses neue Template beim Seiten schreiben rechts für diese neue statische Seite auswählst
lg
texto18.12.07 13:27 | # |
sorry, ich bin ganz neu mit wordpress unterwegs. deswegen verstehe ich das nicht so ganz. muss ich dann für jede statische seite eine eigens template anlegen?
martin18.12.07 14:42 | # |
sorry unklar ausgedrückt: brauch ich für jede statische seite eine eigene php datei?
martin18.12.07 14:43 | # |
oh man, jetzt aber:
http://uploaded.to/?id=5m8wr9
martin18.12.07 15:17 | # |
jetzt bin ich schon als spammer eingestuft …
lösch doch bitte das von mir verursachte chaos … hi hi … ich hab mir einfach für jede statische seite eine php datei angelegt usw.
ist also weitgehend geklärt.
ich wollte es nur irgendwie geschickter über ne abfrage machen, is aber auch egal. vielen dank trotzdem
martin18.12.07 15:56 | # |
hi martin ich musste das *Chaos* zuerst genehmigen, sonst meint SpamKarma2 wirklich Du bist ein Spammer,
weißt klar geht es über Abfragen- doch-
ich habe auch für vieles ein eigenes template-ich behalt so einfach besser den überblick- meine Tutorial Seite -also die mit den über 100 Links hat an die 12templates oder so..
lg
texto18.12.07 23:14 | # |
Super hilfreich. Danke.
kiwi29.12.07 07:45 | # |
Hallo!
Ich habe das zweite Code-Beispiel ausprobiert, allerdings werden die Beiträge bei mir mittig platziert, was natürlich nicht so gut zu lesen ist. Wie kann ich denn WordPress vorschreiben das der Text definitiv linksbündig ausgerichtet ist?
Ansonsten super Tipp,
Danke!
Rene01.01.08 13:44 | # |
Hi Rene
Du hast da sicher eine css class bei dem div, das den Twext umgibt und dieser class gibst du in der style.css
.wasweißich {text-align:left;}#wasweißich mit dem Namen ersetzen, den die css class dort hat
lg
texto03.01.08 00:01 | # |
Hallo! wirklich interessanter Beitrag!
Vielleicht hast Du ja noch eine spontane Eingebung für folgende Problematik: in der index.php schließe ich mit:
“” die Kategorie 3 aus (um sie in einer statischen Seite zu zeigen). Was auch funktioniert, nur listet “Home” bei mehr als 10 Beiträgen, dann auf der Seite “nächste Einträge” nicht den theoretisch folgenden Eintrag, sondern fängt wieder mit dem zuletzt veröffentlichten an. Die Chronologie der Einträge geht also nicht mehr. Verdammt, das ist wirklich kompliziert beschrieben, aber vielleicht weißt Du ja, was ich meine und zusätzlich noch Rat… Danke und beste Grüße!
Tim05.02.08 18:50 | # |
ja ich kenne das Tim, suche am besten im deutschen WordPress Forum nach *page is paged* da gibts einige Lösungen dazu
lg
texto05.02.08 19:20 | # |
Vielen Dank! im englischen Forum bin ich fündig geworden und jetzt geht es wieder…
lg
Tim06.02.08 09:58 | # |
Vielen Dank für den interessanten Beitrag!
Gibt es eine Möglichkeit, einen x-beliebigen Post der Kategory Y (z.B. aus einer Postliste in der Sidebar) nicht über die single.php sondern über die Category-Page “Y” anzeigen zu lassen, damit z.B. in der Navigation auch die Schaltfläche zu dieser Category-Page richtig gehighlighted wird?
Oli31.03.08 12:49 | # |
ah…also Beitrag X ist offen in seiner ganzen Ansicht und die dazugehörige Cat soll hervorgehoben sein … habe ich das richtig verstanden?
lg
texto31.03.08 14:52 | # |
Hallo, liebes Texto-Team!
Ich habe den Beitrag über forum.wordpress-deutschland gefunden (forum.wordpress-deutschland.org/konfiguration/38539-wordpress-als-cms-blog.html) und es funktioniert alles fast perfekt, dafür möchte ich mich bedanken!
Es gibt bei mir (WordPress 2.6) ein kleines Problem -
Das mit dem “nur bis zum Weiterlesen” funktioniert bei mir in einer statischen Seite nicht – es werden die ganzen Texte ausgegeben. Hat sich vielleicht etwas verändert? Gibt es etwas neues oder ein Fehler in diesem Code? Danke!
Vitaliy, Köln18.08.08 22:44 | # |
Wollte noch hinzufügen, also da, wo bei mir im Artikel
steht, entsteht dann doch folgendes:
<p><span id="more-45"></span></p>oder
<p><span id="more-45"></span></p>aber kein Link zu dem Artikel. Und der Artikel selbst wird nicht “getrennt” sondern vollkommen angezeigt!
Vielen Dank im Voraus!
Vitaliy, Köln19.08.08 00:03 | # |
Hi Vitaliy
So ist es besser, wenn der Artikel mittels more gekürzt sein sollte
texto19.08.08 09:42 | # |
Bin sprachlos.. Vielen Dank!!!
Nun versuche ich zu verstehen warum es so funktioniert. Liegt wohl an WP selbst
Vitaliy, Köln19.08.08 15:48 | # |
Hallo, Monika, ich hätte noch eine Frage. Ich hab wirklich viel hier auf texto und überhaupt gesucht, aber keine Lösung gefunden.
Das hier:
“Klar wird man kaum 500 Beiträge auf einer statischen Seite anzeigen lassen, das ist ja irre zu lesen. Aber eventuell hast Du eingestellt, dass WordPress nur 10 pro Seite anzeigen darf.”
scheint bei mir nicht zu funktionieren, es werden also alle Beiträge ausgegeben. Kennst du vielleicht eine Lösung wie ich doch 10 auf einer Seite anzeigen kann und dann mit Hilfe von sowas wie next_post_link(); die anderen?
Ich habe auch die Möglichkeit nicht gefunden, hier
anstatt von 500 alle auszugeben. Kann man in WP irgendwie herausfinden wie viele Artikel es überhaupt gibt? Dann könnte man vielleicht in einer Schleife jeweils die gesamte Anzahl / 10 gleich Seiten erstellen usw.
Kennst du vielleicht die Lösung? Danke!
Vitaliy, Köln20.08.08 20:16 | # |
Hi Vitaly
Weiterblättern und eigener Loop
habe es in einem Artikel erklärt. So ist es hier ein wenig *aufgeräumter*
lg
texto21.08.08 13:45 | # |
hi danke für dein Code !!! Ich habe mal für meinen Blog folgende Seite eingerichtet: http://www.gosleipnir.de/news-ubersicht/
und wie man sieht, hab ich ein “Darstellungsproblem” .
Kannst du mir vielleicht ein tip geben, wie ich das anpasse damit das in die seite passt?
LG
Anja
Anja17.03.09 20:26 | # |
Hi Anja
http://validator.w3.org/
lass da mal diese Seite durch . Du hast wo h1news stehen
ich nehm an, dies sollt heißen h1 class=news mit den Anführungszeichen logischerweise
bloß ich bin ehrlich soviele h1 sind sinnlos,
1x h1 pro Seite –Google kennt das und wertet es als sicher sehr spamig,
lg und vielFreud mit dem Projekt
texto17.03.09 22:28 | # |
oh danke ! ja ich hab einfach die h1 kopiert und diese in h1news umbenannt ohne Bezug das alles h1 ist. Aber gute idee! Ich werde das gleich mal umbennen!
Jetzt hab ich aber das Problem, dass die Liste im Internet Explorer falsch und im Firefox richtig dargestellt wird!
LG und Danke !!
Anja17.03.09 22:34 | # |
das problem lag am align=”left” im tabellenkopf^^
jetzt bin ich zufrieden.
Anja17.03.09 23:40 | # |
Wie ist denn der Stand eines fertigen Templates; meine Seite hat über 2200 Artikel. Ich wäre sehr daran interessiert, mich mit jemandem auszutauschen. Bin Wirtschafter und kein DV- Fachmann.
Bernd22.10.09 14:09 | # |
was meinst du mit *Stand fertigen Templates*?
2200 Artikel–das wird Probleme mit Deinem Webspace/Server geben … könnt ich mir gut vorstellen und wer mag die auf einmal ausdrucken?
da wär es ja besser, du läßt all diese Artikel wirklich drucken
lg
texto25.10.09 17:34 | # |
Hi,
danke für Kommentar. Nur einmal zur Statistik:
2,410 Artikel 8,100 Kommentare
Einige der Artikel sind geteilt.
Ich weiß nun nicht, wie man alle Artikel auf einmal zusammen mit den Kommentaren ausdrucken kann.
“Stand fertigen Templates” ich las oben, dass ein Template gemacht werden müsse, um die Artikel alle in einer Printausgabe erstellen zu können.
Bernd25.10.09 18:25 | # |
ja das Template musst Du selbst machen, wie das geht,habe ich eben oben erklärt. Allerdings ohne Kommentare.
Das wird auch so nicht gehen, es ist schlichtweg zuviel. Du wirst massivste Probs mit dem Server mit PHP und Browser haben
außerdem wird auch der Drucker die 100derte von Seiten nicht so schnell in seinen Speicher und sonstwo hinbekommen
lg
texto26.10.09 18:30 | # |
texto, das ist leider nicht, was ich erwartete.
Mein Drucker ist entweder ein pdf- File oder darüber ein WORD File.
Gruß
Bernd26.10.09 20:59 | # |
was Du erwartest und was php und ein Browser und Dein Server kann mögen drei paar Schuhe sein,
probier es doch aus, die Anleitung dazu hast du hier in diesem Artikel
dann siehst Du, ob es Dein Server schafft oder nicht,
ich biet Lösungsmöglichkeiten an, keine fertigen instant Produkte
texto26.10.09 23:17 | # |
“was Du erwartest und was php und ein Browser und Dein Server kann mögen drei paar Schuhe sein” -> ich bin gewohnt, dass man untereinander freundlicher umgeht.
Lass es. Ende.
Bernd02.11.09 15:15 | # |
smilies sind dir offenbar fremd und ich kann nichts dafür, dass Du Dinge erwartest die so ziemlich sicher nicht gehen können, weils die Technik eben so nicht kann – wennste deswegen eingeschnappt bist,dann soll es so sein.
lg
texto02.11.09 15:34 | # |