Statische Seite X zeigt Beiträge von Kategorie Y an.

Loop Beispiele WordPress
Loop in WordPress

Angefragt wurde ich bereits im Jahr 2006, wie man es in WordPress schafft, dass man beim Aufrufen der statischen Seite X soundsoviele Beiträge aus der Kategorie Y angezeigt bekommt. Die Möglichkeiten haben sich seither erweitert und daher habe ich diesen Beitrag wieder einmal erneuert.

Ich bringe hier seit Dez 2015 ausgewählte Plugins, die Shortcodes liefern, um Beiträge nach bestimmten Kriterien auf einer „statischen“ Seite in WP anzuzeigen. Zeige dir die Embed Funktion von WP 4.4 und ich bringe das Codebeispiel, damit du es selbst machen kannst, wenn dir dies lieber ist.

Ich weise darauf hin, dass WordPress Beiträge ein Kategoriearchiv von sich aus erzeugt. D.h. hie und da mag man nur deswegen die Beiträge aus Kategorie X auf statischer Seite y anzeigen, weil man mit der Darstellung des Archives nicht zufrieden ist.
Diese Darstellung ist aber im category.php Template des Themes leichter zu ändern, als dieser Umweg.

Und eine Website wird auch nicht „seriöser“, wenn man alle Inhalte in Seiten packt und dann versucht diese auf einer Seite zu listen, weil man eine Übersicht haben mag.

Beiträge von Kategorie X mittels Plugin ausgeben

Display Posts Shortcode von Bill Erickson

Die Dokumentation für die Shortcodes findest du hier in einem Wiki.

Dieses Plugin steht auch für alle UserInnen von wordpress.com zur Verfügung. Ich vertraue daher der Programmierung.

List category posts von Fernando

Dieses Plugin liefert einen Shortcode mit sehr vielen Möglichkeiten die Ausgabe zu beeinflussen. Die Erklärung dazu findest du auf der Pluginseite unter „Other Notes“. Du kannst auch bei diesem Plugin ein Theme angepasstes Template erstellen, damit die Ausgabe des Shortcodes deinen Vorstellungen entspricht. => das musst du nicht machen, aber du kannst.

List Category Posts liefert auch eine CSS Datei.

WordPress 4.4 kann Embed von Beiträgen und Seiten

Mit WordPress 4.4 kannst du Beiträge ganz einfach durch das Einfügen eines des Links anzeigen lassen.
Du musst dafür nur den Link in das Textfeld kopieren und auf speichern drücken. Damit wird der Beitrag in einem iframe geladen und ganz speziell ausgegeben.

Ich kopiere nun diesen Link einfach in das Schreibfeld und drücke dann einmal die Entertaste meiner Tastatur und klicke auf speichern // oder aktualisieren.

http://www.texto.de/wie-du-performance-tools-fuer-dich-sinnvoll-nutzen-kannst-2154/

Wie du Performance Tools für dich sinnvoll nutzen kannst

Mein Codebeispiel

Wie immer gibt es viele Lösungen. Ich zeige hier eine auf.
In meinem Beispiel mag ich auf der Seite mit der ID 9 die Beiträge aus der Kategorie mit der ID 6 als Liste ausgeben.

  1. Admincenter//Dashboard==>Seiten==>ID der Seite suchen und merken.
  2. Admincenter//Dashboard==>Beiträge==>Kategorien==>ID der Kategorie suchen und merken.

ein benutzerdefinierter Loop – beeinflusst der auch andere
WP holt mit einem „Loop“ die Inhalte aus der Datenbank. Damit diese Loops sich nicht gegenseitig beeinflussen, muss man sie korrekt beenden. Meine Lösung beeinflusst andere Loops nicht. Egal, ob du deine Beiträge mit diesem Codebeispiel in der Sidebar, im Footer oder irgendwo anders darstellen magst.

Das ganze Codebeispiel auf einmal, ohne genaue Erklärung

 <?php if (is_page('9')) { // ID der gewünschten Seite ?>

<?php
global $post;
$tmp_post = $post;
$args = array( 'numberposts' => 6, 'offset'=> 3, 'category' => 6 );
$myposts = get_posts( $args ); ?>
<ul>
<?php foreach( $myposts as $post ) : setup_postdata($post); ?>

<li><time  class="published" datetime="<?php the_time('Y-m-d') ?>">
<?php the_title( sprintf( '<h3 class="entry-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h3>' ); ?>
</li>

<?php endforeach; ?>
</ul>
<?php  $post = $tmp_post; ?> 

<?php } // end of is_page ?>

Was bedeuten das alles:

 <?php if (is_page('9')) { // ID der gewünschten Seite ?>

Das heißt ausgesprochen:
Wenn es die Seite mit der ID 9 ist, dann…

<?php global $post;
$tmp_post = $post;
$args = array( 'numberposts' => 6, 'offset'=> 3, 'category' => 6 );
$myposts = get_posts( $args );?>
<ul>
<?php foreach( $myposts as $post ) : setup_postdata($post); ?>

Meine Erklärungen sind meist sehr bildhaft ;)

Liebes WordPress, du glaubst zwar jetzt gehts um eine Seite, doch ich gebe dir nun den Befehl zeige Artikel an,
und zwar 6 (numberposts), aber nicht die ersten 3 (offset) und zwar nur aus der Kategorie mit der ID 6.
Und hole alles was zu einem Artikel dazugehört aus der Datenbank raus (setup_postdata).

Das <ul> öffnet die ungeordnete Liste, in der ich die Beiträge anzeigen lassen mag => logisch kannst Du das ändern.

===> Du könntest also auch Autoren, benutzerdefinierte Felder etc anzeigen lassen.

Jetzt wird angegeben wie die Beiträge aussehen sollen:

<li><time  class="published" datetime="<?php the_time('Y-m-d') ?>">
<?php the_title( sprintf( '<h3 class="entry-title"><a href="%s" rel="bookmark">', esc_url( get_permalink() ) ), '</a></h3>' ); ?>
</li>

Hier hast Du freie Wahl. Ich lasse zuerst das Datum anzeigen, dann nur den Link zum Beitrag.
Packe dann alles zwischen die <li> und </li>, damit die Liste richtig wird.

alles bis zum more-tag….

<?php global $more;
$more = 0;
the_content('Weiterlesen'); ?> 

den Loop so beenden damit er andere Loops nicht stört

<?php endforeach;?>
</ul>
<?php  $post = $tmp_post; ?> 

Dies ist wichtig, damit WordPress weiß es muss nicht mehr weiterarbeiten. endforeach und dies $ post = $ tmp_post beendet den Loop komplett, sodass weitere Loops nicht von diesem beeinflusst werden.

Dazwischen beende ich das nötige HTML für die Liste ul.

Abfrage, ob man auf der richtigen Seite ist mag auch beendet werden….

<?php } //end of is_page ?>

Artikelhistorie:

Erstveröffentlichung: 01. März 2006 19:59
Update: 03.11.2011
Update: 12.12.2014
Update: 20.12.2015 Pluginliste und Embed Funktion von WP 4.4

Viel Spaß beim Ausprobieren.

bei Fragen einfach fragen..
103

103 Beiträge zu “Statische Seite X zeigt Beiträge von Kategorie Y an.

  1. Kommentar Autor
    Birgit
    Kommentar

    Hi Monika,

    das hat mir schon etwas geholfen :)
    Allerdings werden bei mir dann die ganzen Artikel angezeigt, nicht nur ds bis zum more-tag. Weißt du vielleicht, warum?

    LG Birgit

  2. Kommentar Autor
    Birgit
    Kommentar

    Vielen lieben Dank Monika! Die verlinkte Lösung war genau das, was ich brauchte. Dein WP-Wissen ist echt beeindruckend :)

  3. Ping WordPress Deutschland FAQ » Artikel der Kategorie X auf Seite Y anzeigen

  4. Kommentar Autor
    Kurikinton
    Kommentar

    Das Script funktioniert so ganz gut nur gibt es einen kleinen Fehler: Der zeigt nur den letzten Beitrag in der Kategorie an. Ich hab „&numberposts=6&offset=3“ extra weg gelassen.

    Woran kann das liegen? Danke!

  5. Kommentar Autor
    Monika
    Kommentar

    numberposts sollte angegeben werden,damit gibst du die Anzahl der Artikel an,

    offset 3 sagt nur die ersten 3 Artikel nicht,

    sprich wenn es trotz dieser Angaben nur den letzten-also den neuesten anzeigt- ist irgendwo anders ein Fehler

    lg

  6. Kommentar Autor
    Dieter
    Kommentar

    Super, schaue ich mir einmal an. Danke Dir :)

  7. Kommentar Autor
    WH|T3H4T
    Kommentar

    danke erstmal für das snippet, läuft ja ansich ganz gut … die artikel bestimmter cats werden auf den entsprechenden seiten angezeigt, nur … und jetzt mein problem … der ursprüngliche text der statischen seite verschwindet^^ … so hab jetzt zig versionen versucht und komme immer zu dem gleichen resultat: entweder statischer text, oder die artikel der category, aber nicht beides? …

    jetzt beschleicht mich langsam der verdacht, das es nur die entweder-oder-lösung gibt? ich hoffe ich liege falsch und es ist möglich erst die artikel einer bstimmten category und dann den statischen text/inhalt auf einer seite auszugeben? …

  8. Kommentar Autor
    Monika
    Kommentar

    schau dir die page.php Deines verwendeten Themes an

    da steht irgendwann mal endif -gleich darunter gibst Du obigen Code oder den von hier
    damit kannst Du besser mehrere Loops unterbringen

    oder Du gibst den Code für die Kat-ArtikelAnzeige VOR if have post while have post in deiner page.php

    ausprobieren ;)

  9. Kommentar Autor
    Eric
    Kommentar

    Danke für den hilfreichen Artikel.
    Hab mir damit ne tolle Startseite im Magazinformat gebastelt. Dort zeige ich aus den 4 Top Kategorien immer die 5 neuesten Beiträge an. Es gibt dazu zwar einige Themes, welche aber immer schwer zu durchschauen waren. So konnte ich mein eigenes Theme einfach anpassen ;-)

  10. Kommentar Autor
    quasimodo
    Kommentar

    Vielen Dank für diesen Hack. Er hat mir schon sehr viel weitergeholfen. Es gibt doch sicherlich noch die Möglichkeit WP, bzw. der statischen Seite mitzuteilen, dass die Artikel nur anreissen, also die More-Funktion beachten soll.

  11. Kommentar Autor
    quasimodo
    Kommentar

    Ich hab’s schon rausgefunden…. wie so oft hilft es nur schin, wenn man nach Hilfe fragt ;-). Vor Ende des li-Tags habe ich folgendes eingefügt:

  12. Ping Wordpress-frage? Google hat die Antwort | Sméagol's Blog

  13. Ping Kat 1 Artikel | Lazar Gorodnitski

  14. Kommentar Autor
    Felix
    Kommentar

    Eine Stunde Friemelarbeit (ich hatte eine Zeile übersehen und ewig rumprobiert, warum es nicht ging…) später funktioniert alles, wie es soll! Super Sache, danke für den Tipp.

    Unabhängig davon auch nochmal vielen Dank dafür, dass du deine alten Einträge nochmal durchsuchst und aktualisierst!

  15. Kommentar Autor
    Monika
    Kommentar

    freut mich, dass Du es schafftest Felix und

    Danke für Deine Rückmeldung (!)

  16. Kommentar Autor
    Stefan
    Kommentar

    Hallo Monika,

    danke für die bildhaften Erklärungen :)
    Jetzt habe ich also meine Artikel auf der speziellen Seite – ABER: Sie zeigen alle im Browserkopf nur den Title der speziellen Seite, und nicht den den Title der einzelnen Artikelseite. Gibt es irgendeinen Befehl, den ich ins Template hineinschreiben muss, damit das klappt? (Sorry, wenn ich etwas übersehen habe.)
    VG Stefan

  17. Kommentar Autor
    Monika
    Kommentar

    hi Stefan

    im Browserkopf steht immer nur der Titel der einen Seite, nie der Titel aller Artikel, die auf einer Seite angeführt werden

    ==> stell dir mal vor, da sind 200 Artikel verlinkt,
    das wären 200 Title im Browser => das ergibt keinen Sinn

  18. Kommentar Autor
    Stefan
    Kommentar

    Huhu, danke für die schnelle Antwort! Wahrscheinlich habe ich mich etwas kryptisch ausgedrückt – die Seite, auf der die Artikel erscheinen, hat einen title. Der wird jetzt auf allen Artikel-Unterseiten angezeigt – statt der einzelnen titles der jeweiligen Artikel. Bestimmt gibt es eine Möglichkeit, das in der header.php anzupassen.
    In der Zwischenzeit – man fragt, und schon fällt einem eine Lösung ein, wie bei Quasimodo oben auch :) – habe ich mir mit einem SEO-Plugin beholfen. Trotzdem wäre es interessant, ob es händisch geht: Man will ja nicht 1000 Plugins im Auftritt herumfleuchen haben …
    Danke dir!

  19. Kommentar Autor
    Monika
    Kommentar

    da biste aber wirklich mit so einem SEO Plugin besser bedient,
    sonst wirds für nicht phpler kryptisch Ende nie ;)

  20. Kommentar Autor
    Anna
    Kommentar

    Hallo Monika,

    ich versuche es gerade, nach Deiner Anleitung eine statische Seite zu basteln, auf der alle Beiträge einer Kategorie aufgelistet sind. Im großen und ganzen scheint es zu klappen, aber die Beiträge werden einfach nacheinander genannt (verlinkt), ich möchte sie aber gelistet haben. Kann es sein, dass in Deinem Code oben irgendwo das fehlt? Wenn ja, wo genau? Habe versucht, es an verschiedenen Stellen im Dokument einzufügen, komme aber zu keinem zufriedenstellenden Ergebnis :(

  21. Kommentar Autor
    Anna
    Kommentar

    Achso, es könnte eventuell wichtig sein: ich benutze das Theme „Twenty Ten“, da gibt es zwei extra Dateien für loops, vielleicht soll ich es dort einfügen?

  22. Kommentar Autor
    Monika
    Kommentar

    gar keinen Loop von twenty ten,

    da oben steht ein Loop in meinem Artikel, den musst nehmen,

    die html Ausgabe musst Du anpassen,
    je nachdem was du haben magst…

  23. Kommentar Autor
    Daniel
    Kommentar

    Guten Tag,
    ich würde gerne auf meinem Blog genau das hier beschriebene durchführen („Statische Seite X zeigt Beiträge von Kategorie Y an“). Allerdings frage ich mich gerade ob das bei mir überhaupt möglich ist.
    Denn ich nutze den Bloghosting-Dienst von WordPress. D.h. ich habe nichts extra auf meinem PC installiert sonder ich verwalte meinen Blog über eine Admin-Internetseite. Daher weiß ich nicht ob und wo ich auf die PHP-Seite für meinen Blog zugreifen kann.
    Kann mir da jemand helfen?
    Viele Grüße
    Daniel

  24. Kommentar Autor
    Monika
    Kommentar

    HI Daniel

    du hast deinen Blog bei wordpress.com,
    da wird dies so nicht funktionieren => weil Du eben keinen Zugang zum jeweiligen ThemeOrdner hast.

  25. Kommentar Autor
    Daniel
    Kommentar

    „da wird dies so nicht funktionieren“,
    ok, habs fast befürchtet,
    trotzdem vielen dank

  26. Kommentar Autor
    Arthur
    Kommentar

    Bei einem meiner Blogs hats geklappt, bei dem anderen leider nicht. Muss wohl an dem Theme liegen, aber das Theme von dem zweiten Blog ist auch echt sündhaft schlecht programmiert.
    Hatte auch erst das selbe Problem wie Stefan, habe mich aber dann an den Rat von Monika gehalten und das Problem mit dem Plugin WordPress SEO beseitigt. Danke! :)

  27. Kommentar Autor
    Tommy1424
    Kommentar

    Hi, erstmal herzlichen Dank für die super Erklärung. Leider hab ich da jetzt noch ein Prob wo ich einfach nicht weiter komme. Muss aber zugeben, dass sich meine php-Kenntnisse sehr in Grenzen halten.

    Also ich hab aus der page.php ein neues Seitentemplate erstellt. Den Code von oben reinkopiert und angepasst. Soweit alles super. Aber normalerweise kommen sämtliche Beiträge auf weißem Hintergrund bzw. in so einem Kästchen.
    Nur auf der neu erstellten Seite, habe für den statischen Text das weiße Kästchen, die Artikel reihen sich nahtlos unten ohne Hintergrund an.

    Was bzw wo hab ich da den Fehler drinn? Benutze das Graphene Theme.

    Danke!

  28. Kommentar Autor
    Tommy1424
    Kommentar

    Danke! Das Problem hab ich vorerst behoben. Habe im neuen Seitentemplate statt obigen Code folgendes eingegeben:

    statt cat=-0 hab ich die passende cat-id eingegeben. Jetzt hab ich zwar auf jeder Blogseite die selbe Anzahl an Artikel, aber fürs Erste sollte es so passen.

  29. Kommentar Autor
    Monika
    Kommentar

    hi Tommy das liegt nicht an der Kategorie, die du dazu hernimmst, also der cat id sondern an dem html, das du an dein theme anpassen solltest,

    ich kenne das deine leider nicht

  30. Kommentar Autor
    Raphael
    Kommentar

    Wunderbar, der Artikel hilft wirklich weiter. Ein kleines Problem gibt es noch, das im Artikel nicht angesprochen wird: Wenn ich genau so wie beschrieben verfahre, dann erscheint unter der Liste der Beiträge der erste Artikel. Ich will aber gar keinen Artikel, sondern nur die Liste. Wie muss ich denn dann den Code modifizieren?

    Danke schon mal vorab!
    Raphael

  31. Kommentar Autor
    Monika
    Kommentar

    Raphael nur die Liste?

    also nur die Aufzählung der Artikeltitel mit den Links dazu ?

    wenn dies so stimmt, dann lass das weg :

    <?php global $more;
    $more = 0;
    the_content('Weiterlesen'); ?>
  32. Kommentar Autor
    Giede
    Kommentar

    Hi, guter Artikel, vielen Dank! Fehlt denn in dem Beispiel nicht der öffnende ul-Tag?
    Und kann ich die passenden Artikel z.B. nach Anfangsbuchstaben A, B, C sortieren lassen?

  33. Kommentar Autor
    Jan
    Kommentar

    Hmm kriege ich es damit auch irgendwie hin, dass alle Artikel ausgegeben werden, die ein bestimmtes Tag haben..?

  34. Kommentar Autor
    Monika
    Kommentar

    ja Jan
    statt
    ‚category‘ => 6

    ‚tag’=>tag-slug

    müßte funktionieren

  35. Kommentar Autor
    henne
    Kommentar

    Ich benutze das Presswork Template.
    Hier gibt es leider keine Sidebar.php wo soll der Code dann hinein?

  36. Kommentar Autor
    Monika
    Kommentar

    huch @henne da kann ich dir nicht helfen, weil ich das template nicht kenne
    hat es eine Sidebar?
    wenn ja muss dazu irgendwo ein template dazu vorhanden sein

    oder die sidebar ist in der single.php mitdrin

    leider kann ich dir da nicht mehr helfen, haben die wo Hilfe oder eine Dokumentation zu ihren Themes=> eventuell findest du da was

  37. Kommentar Autor
    Alexander Ritter
    Kommentar

    Hallo,

    also bei mir funktioniert das nicht. Irgendetwas mache ich falsch. Ich habe mein Template mit Artisteer erstellt und habe in die page.php den Codeschnipsel eingetragen. Anwelcher Stelle muss er denn genau rein. Ich habe alle möglichen Stellen ausprobiert, aber es funktionierte leider nicht.

  38. Kommentar Autor
    Dima
    Kommentar

    Hallo,

    wie bekomme ich es hin, dass ich nur die ersten 4 neue Artikel zu sehen bekomme und nicht wie du beschrieben hast die letzen 3…

    Danke!

  39. Kommentar Autor
    Monika
    Kommentar

    Hallo DIma

    du änderst diese Zeile

    $args = array( 'numberposts' => 6, 'offset'=> 3, 'category' => 6 );

    so ab

    $args = array( 'numberposts' => 4,  'category' => 6 );

    hilft das weiter?

  40. Kommentar Autor
    Pepe
    Kommentar

    das nenne ich mal eine Anleitung. Danke! Ich weiß, passt hier nicht reich aber: Frage, wie kann man eine HTML aufgebaute seite in WordPress umbauen ohne dafür lange offline zu gehen. Kann man den WordPress auch offline schon vorbereiten?

  41. Kommentar Autor
    Monika
    Kommentar

    Pepe kannst du ,
    war leider weg, daher erst jetzt die Antwort
    brauchst dafür aber XAMP, weil es ja .php Seiten sind

  42. Kommentar Autor
    gellar
    Kommentar

    hallo,
    vielen dank erstmal.
    also ich habe mir ein template erstellt und dieser eine feste ID (die meiner Cat) angegeben.
    Nun muss ich den Artikeln nur sagen welcher Artikel in welcher Kategorie erscheinen soll und sie erscheinen auf der zugewiesenen Seite.

    Nun aber zu meiner Frage. Ich möchte einen Internen, also PW geschützen Bereich. Dieser wird aber irgendwie wieder durch meine Template oder so außer Kraft gesetzt.
    Was kann ich tun?
    Vielen Dank, falls irgendwelche Codes gebraucht werden, einfach schreiben ;)

  43. Kommentar Autor
    Monika
    Kommentar

    HI gellar

    du müßtesst rund um den „Loop“ eine Abfrage einbauen, die bei passwort geschützt nichts zurückgibt und sonst alles,

    if ( post_password_required() ) {
        return;
    } else {
        // hier der Loop von oben
    }

    kommst du mit der Angabe klar?

  44. Kommentar Autor
    Johanna
    Kommentar

    Hey, ich weiß überhaupt nicht wo ich es auf einfügen soll?! ich hab schon alles probiert aber irgendwie geht es nirgendwo. Hmmm.. Bitte Hilf mir! :)

  45. Kommentar Autor
    Monika
    Kommentar

    Johanna

    ich habe schon alles probiert => ist zwar 100% richtig, dennoch weiß ich nicht wo ich bei der Hilfe ansetzen sollte ;)

    was hat wo wann wie nicht funktioniert und vorher
    was möchtest du denn haben?

    sonst brauch ich meine Glaskugeln, wie eine Hexe,die sind im SOmmer aber lieber am Strand :(

  46. Kommentar Autor
    Marco
    Kommentar

    Hallo,

    ich finde das hier ja alles super. Nur bin ich leider noch nicht so ganz in der Materie drin und benötige ein wenig hilfe.

    Ich habe jetzt verschiedene Kategorien z.B. News dort möchte ich dann die Seiten mit den News anzeigen lassen. Erstelle ich jetzt Seiten oder Artikel für den obigen Code?

    Meine zweite Frage wäre wo muss ich den Code einfügen bei mir einfügen?

    Meinen Pagecode habe ich mal mit angefügt.

    page.php

  47. Kommentar Autor
    Monika
    Kommentar

    hi Marco

    wenn du die Kategorie News hast, dann erstelle einfach Artikel und diese werden in der Kategorieübersicht angezeigt

    es ist der einfachste und beste Weg,

    da brauchst du von diesem Artikel gar nichts … ;)

    nimm Seiten für das Impressum, Email oder About me oder Referenzen,
    weil eine Seite nie zeitlich geordnet ist und News magst ja zeitlich ordnen, sonst ist es sinnlos

  48. Kommentar Autor
    Marco
    Kommentar

    Hallo,

    danke für die Info. Wieder was dazu glernt. Wie gesagt ich bin noch am Anfang und arbeite mich Stück für Stück rein.

  49. Kommentar Autor
    Monika
    Kommentar

    @Marco Fragen sind niemals eine Schand,
    Antworten können eine werden ;)

    du bist hier immer Willkommen mit Deinen Fragen :-)

  50. Kommentar Autor
    Marco
    Kommentar

    Hallo Monika,

    eine Frage hätte ich da noch. Gibt es eine möglichkeit das ich eine Seite anlege die immer ganz oben ist.

    Praktisch sowie in einem Forum wo man einzelne Threads oben anpinnen kann.

    Weil ich hätte gerne oben ganz oben eine Seite wo die Links zu den ganzen Artikeln sind.

    Gruß
    Marco

  51. Kommentar Autor
    Monika
    Kommentar

    am einfachsten machst du das mit einem Artikel
    weil den kannst du „pinnen“ das findest du auf der rechten Seite ganz oben

    also Artikel erstellen oder bearbeiten
    dann rechts ganz oben hinsehen,

    da steht wo „Sichtbarkeit“ und da kann man einen Artikel „pinnen“ =“auf der Startseite oben halten“

  52. Kommentar Autor
    Ecke
    Kommentar

    Hallo Monika,

    ich hoffe, du kannst mir weiterhelfen.

    Ich habe mit Hilfe dieses Artikels sowie mein (noch nicht veröffentliches) Blog um eine statische Seite erweitern wollen, die alle Einträge in chronologischer Reihenfolge anzeigt. Das sieht innerhalb meiner Datei loop-page.php (Theme TwentyTen) dann so aus:

    query('order=ASC'.'&paged='.$paged);
       }
    ?>
    

    [Hier der unveränderte Loop]

    
       
       
    
    
    

    Das klappt auch soweit ganz gut. Allerdings fehlen auf der chronologisch sortierten Seite 1135 die Metainformationen der Artikel, also z.B. „Publiziert am …, von …“ sowieso die Kommentarfunktion.

    Auf der normalen Artikelseite sind diese Links alle da.

    Was mache ich denn da falsch?

    Viele Grüße, Ecke

  53. Kommentar Autor
    Ecke
    Kommentar

    Argh… entschuldige den vorigen Müll. Ich würde mir hier eine Vorschau-Funktion wünschen. :)

    Hallo Monika,

    ich hoffe, du kannst mir weiterhelfen.

    Ich habe mit Hilfe dieses Artikels sowie diesem hier mein (noch nicht veröffentliches) Blog um eine statische Seite erweitern wollen, die alle Einträge in chronologischer Reihenfolge anzeigt. Das sieht innerhalb meiner Datei loop-page.php (Theme TwentyTen) dann so aus:

    query('order=ASC'.'&paged='.$paged);
       }
    ?>
    

    [Hier der unveränderte Loop]

    
       
       
    
    
    

    Das klappt auch soweit ganz gut. Allerdings fehlen auf der chronologisch sortierten Seite 1135 die Metainformationen der Artikel, also z.B. „Publiziert am …, von …“ sowieso die Kommentarfunktion.

    Auf der normalen Artikelseite sind diese Links alle da.

    Was mache ich denn da falsch?

    Viele Grüße, Ecke

  54. Kommentar Autor
    Monika
    Kommentar

    Vorschaufunktion ;) vielleicht schaff ich das mal ;)

    schick mirs per Email, ;)
    und zwar das ganze Template bitte

    Email Adresse:mts Klammeraffe texto dot de

  55. Kommentar Autor
    Dirk
    Kommentar

    Hallo Monika,

    funktioniert gut! Noch eine Frage:

    Wie muss der Code

    <a href="“
    rel=“bookmark“ title=“ „>.

    lauten wenn alles ausgegeben werden soll, was im Artikel steht (also nicht nur der Titel)?

    Vielen Dank
    Dirk

  56. Kommentar Autor
    Monika
    Kommentar

    HI Dirk

    oben im Artikel steht mal „alles bis zum more tag“ das kannst nehmen

     
    alles bis more tag
    <?php global $more;
    $more = 0;
    the_content('Weiterlesen'); ?>

    oder du magst wirklich alles, dann musst du

     
    wirklich den ganzen inhalt 
    <?php global $more;
    $more = 1;
    the_content('Weiterlesen'); ?>

    meintest du das?

  57. Kommentar Autor
    Andreas
    Kommentar

    Hallo Monika,

    vielen Dank für die Anleitung. Ich habe die Übersicht der Artikel erfolgreich umgesetzt, allerdings fehlt mir jetzt noch eine Seitennavigation (Pagination) auf dieser Seite.

    Hast du dazu vielleicht noch eine Idee?

    Vielen Dank und beste Grüße
    Andreas

  58. Kommentar Autor
    Monika
    Kommentar

    Plugin WP Page Numbers könnte gut funktionieren
    allerdings ist der Loop nicht so gut dafür

    außer du ergänzt ihn um

    'paged' => $paged
  59. Kommentar Autor
    Torn
    Kommentar

    Hallo Fachfrau Monika, vielen dank erstmal für ide guten tips. Ich habe das mit den Artikeln versucht, leider kein erfolg.Bin wahrscheinlich doch nicht klug genug. Hane den Code in die Post.php eingefügt, die entsprechenden Id geändert kein ergebnis. So sieht die Post.php aus,

    <div id=“post-„>

    <a href="“>get_option(‚featured_image_width‘), $theme->get_option(‚featured_image_height‘)),
    array(„class“ => $theme->get_option(‚featured_image_position‘) . “ featured_image“)
    ); ?>

    <a href="“ title=““ rel=“bookmark“>

     

    shorten(get_the_excerpt(), ’30‘);
    ?>

    display(‚read_more‘)) { ?>

    <a href="#more-“ title=““ rel=“bookmark“>option(‚read_more‘); ?>

    <!– Post ID –>

    6, ‚offset’=> 3, ‚category‘ => 3 );
    $myposts = get_posts( $args );
    foreach( $myposts as $post ) : setup_postdata($post); ?>

    <a href="“ rel=“bookmark“ title=“ „>.

    Sicher habe ich da etwas übersehen? oder nicht verstanden. Kannst Du mir helfen?

    Mfg Torn

  60. Kommentar Autor
    Monika
    Kommentar

    Hi Torn

    welche Aufgabe hat diese post.php in deinem Theme?
    Zeigt die statische Seiten an?
    Dies gehört an und für sich in die page.php.

    Doch viele Themes ändern dies und dann wäre es gut, wenn du eine page.php erstellst, WP erkennt diese am Namen.

    Du kannst mir dann deine page.php an mts@(Domainname von hier) senden,

  61. Kommentar Autor
    Heidi
    Kommentar

    Hi Monika,

    ich bin neu bei WordPress und habe wenig Kenntnis! Ich habe das Theme „Responsive“ ausprobiert. Was muß ich einstellen, das auf den Artikelseiten: die Zeilen „Blog Archive“ und „Veröffentlicht am xx.xx.xxxx von xxxx“ nicht angezeigt werden? Kann ich das mit deiner obigen Anleitung lösen, wenn ja muß ich den Code jetzt in sidebar.php oder in page.php einsetzen und an welcher Stelle? Oder muß ich alles komplett überschreiben?

  62. Kommentar Autor
    Monika
    Kommentar

    grüß dich @Heidi
    nein mit obigen Code kannst du das nicht lösen

    und wenn ich nach WordPress Theme „Responsive“ via Google suche bekomm ich über 8Millionen Ergebnisse, ich habe schlicht keine Ahnung welches Theme du hast.

    wenn das auf den Artikelseiten nicht mehr sein sollte, dann erzeugt dies die category.php oder archive.php
    entweder ist dort ein Verweis zu einer Funktion, die irgendwo in den Dateien des Themes ist oder zu einem Content Template, das diese Ausgabe sich auch von wo anders holt.

    Es ist mir daher unmöglich, dir dies Schritt für Schritt mitzuteilen, aufgrund der unendlichen Möglichkeiten
    „meta Angaben“ sind dies
    postmeta functions und der „archiv oder cateory title“

  63. Ping mehr als 15 Minuten werden manche Artikel hier gelesen, schönes Feedback Danke!

  64. Kommentar Autor
    Frank
    Kommentar

    Hallo!

    Ich halte die hier besprochene Lösung für suboptimal. Funktionalität gehört ganz klar in ein Plugin, nicht in Theme-Dateien. Wer nämlich das Theme einmal wechseln will, der wird üblen Jammer haben (Seite zeigt nichts mehr an und der Hack ist inzwischen vergessen). Funktionalität und Design sind nun einmal 2 Paar Schuhe.

    Es bieten sich Shortcodes an – in vielerlei Auswahl auf wordpress.org als freie Plugins für genau diesen Zweck vorhanden. Shortcodes sind genau für diesen Zweck da. Sie sind viel flexibler (wie z.B. Display Posts Shortcode) und zudem anfänger-geeignet, da kein Coding nötig ist.

  65. Kommentar Autor
    Frank
    Kommentar

    Nachtrag: natürlich gibt’s die Shortcodes erst seit 2008 bzw. WP-Version 2.5. Dein Beitrag ist ursprünglich ja doch 2 Jahre älter :-)

    Auch das erwähnte Plugin ist noch relativ jung. Aber zumindest heutzutage würde man jedenfalls besser Shortcodes einsetzen.

    Schöne Grüße,
    Frank

  66. Kommentar Autor
    Monika
    Kommentar

    Hallo Frank
    wer seine Codes in ein Plugin oder in Shortcodes packen mag, solle dies tun.

    Ich propagiere solche Lösungen kaum bis gar nicht, weil die, die das können, die wissen auch wie sie auf einer Seite Artikel aus der Kategorie Y anzeigen können ;)

    Unabhängig weiß ich nicht (noch nicht) wie dieses ShortCodePlugin seinen Code umsetzt. Die Funktionen sind bei solchen Plugins immer begrenzt. Ob ich an das Theme denken muss oder mich von einem Plugin abhängig mache ist de facto egal. Dran denken muss man.

  67. Kommentar Autor
    Frank
    Kommentar

    Hallo Monika,

    ich kann Dir darin nicht zustimmen, dass PHP-Code in Theme-Dateien weniger Knowhow erfordern soll als einen Shortcode zu verwenden. Erklärter Zweck von Shortcodes ist ja gerade, dem Benutzer die Konfrontation mit PHP zu ersparen. Auch wird die Trennung von Inhalt und Design beibehalten, was einer der großen Langzeit-Vorteile eines Content-Management-Systems ist. Abgesehen von den Code-Erklärungen oben im Artikel – was ist leichter zu verstehen und anzuwenden: auf Theme-Dateien verteilter Code (wie oben) oder dies:
    [display-posts offset="3" posts_per_page="6" include_date="true" date_format="d.m.Y" category="Allgemein"]

    Sehr recht hast Du allerdings, liebe Monika, mit Deiner Plugin-Skepsis. Denn hier eine Warnung an alle, die das oben beispielhaft genannte Plugin verwenden wollen: es hat Sicherheitslöcher und torpediert unfreiwillig die WordPress-Rechteverwaltung (z.B. können böswillige Autoren den Text passwortgeschützer Beiträge, von Entwürfen, Alt-Revisionen, zur Revision nur vorgeschlagener Beiträge sowie Papierkorb-Beiträge aller Blog-Benutzer veröffentlichen). Also Vorsicht! Wer das Plugin dennoch verwenden will, muß die Unterstützung des Attributes „post_status“ im PHP-Quelltext beschränken. Die Zeile:
    $available = array( 'publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit', 'trash', 'any' );
    muss unbedingt zu
    $available = array( 'publish', 'private');
    abgeändert werden. Der „private“-Status ist im Plugin seit dem letzten Update zureichend abgesichert.

    Schöne Grüße,
    Frank

  68. Kommentar Autor
    tim
    Kommentar

    Hallo Monika,
    ich hoffe, das erreicht dich noch, der artikel hier ist ja doch schon ein wenig älter :-)
    vielen lieben dank für deinen tip, allerdings habe ich ein kleines problem: auf der statischen seite habe ich eigentlich noch einen text stehen – der code für diese funktion scheint sich mit diesem code hier zu beißen:

    Hab ich ihn vor dem hiesigen Code stehen, erscheinen die artikel nicht mehr. lösung ist entweder löschen oder nach dem code anzeigen lassen. dann funktionierts, allerdings erscheint der seitenname, als auch der text, den ich vor den kategorieartikeln auf der seite stehen haben wolllte, am ende von der seite, nach den artikel. hast du vielleicht eine idee und kannst mir helfen?

    6 );
    $myposts = get_posts( $args );
    foreach( $myposts as $post ) : setup_postdata($post); ?>

    <a href="“ rel=“bookmark“ title=“ „>

    5 );
    $myposts = get_posts( $args );
    foreach( $myposts as $post ) : setup_postdata($post); ?>

    <a href="“ rel=“bookmark“ title=“ „>


    liebe grüße und vielen dank

  69. Kommentar Autor
    Monika
    Kommentar

    grüß dich Tim
    anhand deiner Beschreibung kann ich den Fehler nicht sehen ;)

    meine EMail Adresse ist mts@(Domainnamevonhier) dann kannst du mir die betroffene Datei als Anhang senden,

    lg Monika

  70. Kommentar Autor
    Pat
    Kommentar

    Moin moin Monika ( It’s alliteration! :D)

    Ich habe mir gerade mal den Code-Schnippsel kopiert und versucht über mein Child Theme das Ganze zum Laufen zu bringen. Das hat leider nicht funktioniert. Ich nutze das Cyberchimp Theme IfeaturePro5. Leider steht in der Page.php nur ein paar do_actions und keine Loops, hinter die ich den Code von hier packen kann. Genauer:
    Das hier ist die page.php

    besteht die Chance, das ich den Code eingebaut kriege? Und ich habe das doch richtig verstanden, das keine Linkliste angezeigt wird, sondern die Artikel selbst, wie sie auch in einem Kategorie-Archiv angezeigt werden würden?

    Wenn das mit dem Code nicht klappt (kann ich mir nicht vorstellen, ich bin wahrscheinlich einfach nicht bewandert genug in php Programmierung) Gibt es dann ne Möglichkeit Kategorie-Archive als Child von Seiten einzurichten? weil meine Breadcrumbs sind im Moment nicht korrekt, da ich von Seiten auf Kategorie-Archive verweise, und damit halt immer „Start>Kreatives>Archiv von Schönschreiberei“ immer angezeigt kriege „Start>Archiv von Schönschreiberei“ und somit nicht wieder zurück auf Kreatives kann. Wenn der hier vorgestellte Code so funktioniert wie ich mir das vorstelle, habe ich „Start>Kreatives>Schönschreiberei“, wobei auf der Seite Schönschreiberei die Artikel der Kategorie Schönschreiberei angezeigt werden (Natürlich mit unterschiedlichen Slugs belegt ^^)

    Thx for the help

  71. Kommentar Autor
    Monika
    Kommentar

    oh Pat ich kenne das Theme nicht und ich hoff du verstehst, dass ich es mir nicht kaufe, um da durchzublicken und um dann kostenfrei zu helfen.
    Du hast aber bezahlt, frag deren Support wie du einen „eigenen Loop“ in einer page.php nutzen kannst, also auf einer statischen Seite und das mit der Breadcrumb tät ich gleich dazu fragen.

  72. Kommentar Autor
    Pat
    Kommentar

    Um Gottes Willen, ich erwarte nicht das du es kaufst :) Ich hatte nur gehofft du kennst es eventuell. Es gibt auch eine Freeversion dazu, da ist die page.php dieselbe.

    Der Support deckt leider kein Child-Theming ab, deswegen such ich schon seit Tagen nach einer Lösung.

    Trotzdem danke fürs schnelle Antworten.

  73. Kommentar Autor
    Monika
    Kommentar

    :( leider

    wo findest du denn all diese functions und Hinweise aus dieser page.php?

  74. Kommentar Autor
    Pat
    Kommentar

    Tja, keine Ahnung. Soweit bin ich in dem Theme noch nicht vorgedrungen, das ich wüsste wo das alles herkommt.

  75. Kommentar Autor
    Monika
    Kommentar

    suche dir aus der page.php eine Angabe, die du als relativ eindeutig erkennst eine Funktion oder so
    und nutze die Suche deines PCs Mac, um die in dem ThemeOrdner nochmals zu finden …

  76. Kommentar Autor
    Julia
    Kommentar

    Hallo Monika,

    auch ich bekomme WordPress nicht dazu, das zu tun was ich eigentlich wollte :P
    Problem: Ich würde gern den vollständigen Artikel inkl. Galerie anzeigen lassen,
    nicht nur eine Liste mit den Namen. Hats du noch einen Tipp für mich?
    Danke

  77. Kommentar Autor
    Olmo
    Kommentar

    Hallo Monika,

    vielen Dank für die Erklärung. Sie hat mir bereits deutlich weitergeholfen.
    Ich versuch gerade auf zwei verschiedenen Seiten Artikel unterschiedlicher Kategorie anzeigen zu lassen,
    bekomme dies aber nicht fehlerfrei hin. Wie erweitere Ich die Abfrage korrekt um das entsprechende zweite Argument?

  78. Kommentar Autor
    Philipp
    Kommentar

    Hallo Monika,

    erst einmal vielen Dank für den tollen Artikel. Ich habe genau das vor, was du hier beschreibst, bin aber kein EDV-Genie ^.^

    Ich bin ein wenig anders an die Sache ran gegangen und möchte nun fragen ob du eventuell eine Lösung für mich hast. Auch ich möchte auf der statischen Seite die letzten Artikel komplett anzeigen lassen, habe jedoch das Plugin „Exec-PHP“ verwendet, mit dem ich (sofern der normale Editor deaktiviert ist), PHP Code direkt in den Fließtext einbinden kann.

    Nun möchte ich dich fragen wie ich mit einem Befehl meine Artikel untereinander anzeigen lassen. Hast du da vielleicht eine einfache Lösung für mich? :)

    Den Code möchte ich quasi direkt in die statische Seite über den Editor einbinden.

    Viele Grüße
    Philipp

  79. Kommentar Autor
    Monika
    Kommentar

    das „untereinander“ ist eine Sache von CSS
    dazu kann ich ohne Link und ohne es zu sehen, gar nichts sagen, weils tausende Möglichkeiten gibt,
    ich bin aber ab Morgen eine Woche kaum erreichbar (fast ohne WWW) daher könnt Hilfe dauern..

  80. Kommentar Autor
    Andreas
    Kommentar

    Hallo Monika,

    bei mir klappt es leider nicht. Woran liegt es???


    3, ‚offset’=> 0, ‚category‘ => 14 );
    $myposts = get_posts( $args );
    foreach( $myposts as $post ) : setup_postdata($post); ?>

    <a href="“ rel=“bookmark“ title=“ „>.

    Gruß Andreas

  81. Kommentar Autor
    Andreas
    Kommentar

    Hallo Monika,
    hier mein ganzer Code der Page.php:


    3, ‚offset’=> 0, ‚category‘ => 14 );
    $myposts = get_posts( $args );
    foreach( $myposts as $post ) : setup_postdata($post); ?>
    <a href="“ rel=“bookmark“ title=“ „>.

  82. Kommentar Autor
    Christian
    Kommentar

    Hallo,

    also deine Anleitung funktioniert grundsätzlich schonmal bei mir.
    Nur leider gibt es ein Problem:
    Er soll auf meiner Seiden-ID 109 nur die Artikel aus Kategorie-ID 1 anzeigen, aber er zeigt trotzdem immer alle Artikel aus allen Kategorien an.

    Ich hoffe, du weiß irgendwie eine Lösung :)

    Grüße
    Christian

  83. Kommentar Autor
    Monika
    Kommentar

    Hi Christian da meine Glaskugeln akut den Altweibersommer genießen habe ich keine Ahnung wieso es nicht funtkioniert, dass da nur die Cat ID 1 angezeigt wird :-)

    wie sieht dein Code aus, sind die Artikel der Cat 1 auch in anderen Kategorien drin?
    ich habe hier einen Code Button, da kannst deinen Loop einfügen und dann markieren und mit dem Code Button umgeben danke!

  84. Kommentar Autor
    Christian
    Kommentar

    Vielen Dank für die Antwort. Hier ist der Code:

    6, ‚offset’=> 3, ‚category‘ => 1 );
    $myposts = get_posts( $args );
    foreach( $myposts as $post ) : setup_postdata($post); ?>

    <a href="“ rel=“bookmark“ title=“ „>.

    Auf meiner vorläufigen Testseite sind insgesamt 6 Beiträge und 2 davon sind nur in der Kategorie-ID1.
    Aber es werden alle auf der Seiten-ID 109 angezeigt :(

  85. Kommentar Autor
    Christian
    Kommentar

    Sorry fürs spamen, aber der code-Tag will nicht :)
    Kann ich dir die Sachen anderweitig schicken?

  86. Kommentar Autor
    Micha
    Kommentar

    Hallo Monika,

    erst einmal auch von mir ein ganz großes Lob für diesen Artikel. Er hat mir schon enorm weitergeholfen. Dennoch habe ich einen weitere Frage dazu:
    Ist es möglich der Ausgabe noch ein Thumbnail hinzuzufügen? Wenn ja, wie würde ich hier vorgehen bzw. welchen Code muss ich wo einfügen?

  87. Kommentar Autor
    Monika
    Kommentar

    grüß Dich Micha

    auf alle Fälle vor „endforeach“. Welches html //CSS du brauchst zur Gestaltung hängt von deinem Theme ab:
    1. und letzte Zeile fragen ab, ob da überhaupt ein Thumbnail ist, d.h. etwaiges html erst danach einfügen, dann gibts keine „leeren Flecken, unerwünschte Ränder“
    mit a href beginnt die Verlinkung und Anzeige des post_thumbnails in Thumbnail Größe

      <?php if ( has_post_thumbnail() ) {?>
    
    <a  href="<?php the_permalink(); ?>"  title="<?php the_title_attribute(); ?>"> <?php the_post_thumbnail( 'thumbnail' );?></a>
    
    <?php } ?>
    
    

    kommst damit klar?

  88. Kommentar Autor
    Max
    Kommentar

    Hallo Monika,

    Ich habe dein Loop in mein Template eingebaut funktioniert super soweit. Ein kleines Problem habe ich aber.
    Der Loop sitzt in meiner header.php und gibt mit “ ja die Kategorie nur auf Seite ‚9‘
    kann man das so einstellen das es immer ausgegeben wird. Vielen Dank schon mal

  89. Kommentar Autor
    Sam
    Kommentar

    Hallo Monika,

    ich habe eine Seite auf der ich bestimme Artikel anzeigen lassen möchte. Deine Anleitung hat mir sehr geholfen, danke an dieser Stelle! Allerdings möchte ich das Ganze noch weiterspinnen.

    Ich habe Pages (keine Artikel) auf denen ich gerne bestimmte Kategorien anzeigen lassen möchte.

    Jede Page hat auch ihre entsprechende den Kategorien „Apfel“, „Birne“, „Kiwi“.. Page-Name und Artikel-Name sind daher gleich (!).

    Gibt es einen Befehl der mir sagt:

    $arg = the_title();
    $showsite = array(‚category_name‘ => ($arg));

    if is_page(cat=$showsite);

    oder ähnliches?

    Würde mich über eine Antwort freuen! :)

  90. Kommentar Autor
    Christopher Binder
    Kommentar

    Hallo Monika,

    zunächst erst einmal ein großes Danke für den hilfreichen Beitrag. Ich nutze diese Schleife für die Startseite, um eine begrenzte Anzahl der neusten Beiträge neben dem statischen Inhalt anzuzeigen. Allerdings habe ich noch ein Problem, wo ich keine Lösung zu finde:

    Ich benutze das Plugin Crayon zum Highlighting von Quelltexten in den Beiträgen. Allerdings funktioniert Crayon nicht auf der Startseite, wo sich deine Lösung befindet. Dort wird der Quelltext einfach in einer anderen Schriftart dargestellt und landet nicht in diesen typischen Quelltext-Boxen. In der index.php und in der single.php, die für die Anzeige meiner Beiträge zustädig sind, funktioniert dagegen das Plugin einwandfrei.

    Fehlt deshalb eventuell noch etwas wichtiges in dem selbstgebauten Loop?

    LG

  91. Kommentar Autor
    Monika
    Kommentar

    grüß Dich Christoph
    ich kenne dieses Plugin nicht, am besten fragst du den Pluginautor auf welchen „Trigger“ das Plugin arbeitet

  92. Kommentar Autor
    Seb
    Kommentar

    Hallo

    Danke erst mal für das Tutorial!

    Jetzt eine Frage bei mir Funktioniert das nicht wirklich wenn ich meine Kategorie 99 eintrage zeigt er nix an Trag ich 0 ein Zeigt es auch nur 6 beiträge an. Ich bin verwirrt :D

    
     6, 'offset'=> 3, 'category' =>; 0 );
    $myposts = get_posts( $args );
    foreach( $myposts as $post ) : setup_postdata($post); ?>
    
    .
    

  93. Kommentar Autor
    Matthias
    Kommentar

    Hallo Monika,

    ich habe deinen Code auf meiner page.php eingebaut und er funktioniert fast perfekt. Leider zeigt WordPress einfach alle Beiträge an (nach Erstellungsdatum sortiert) und nicht nur die aus der gewünschten Kategorie.
    Hast du eine Idee, wo der Fehler liegen könnte. Wahrscheinlich wie immer beim Benutzer, oder? ;-)

    Vielen Dank schon mal im Voraus.