plugin Beitragreihenfolge umdrehen

  • Hallo,

    ich suche schon seit einigen Stunden eine Möglichkeit, die Reihenfolge der einzelnen Beiträge in den Rubriken umzudrehen. Standardmässig erscheinen immer die zuletzt geschriebenen Themen zuerst im blog und die Alten rutschen nach und nach ab. Gibt es dafür eine Art plugin oder lässt sich dies irgendwie selbst bewerkstelligen. Danke im voraus für Eure Hilfe. Wohlgemerkt es geht um richtige Beiträge, keine Kommentare.

    Grüße
    monk77

    • 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

  • Gibt es wirklich keine Möglichkeit, Beiträge so anzuordnern, dass die alten immer zuerst erscheinen und dann nach untenhin chronologisch immer jünger werden. Für mich wäre dies zwingend erforderlich.

    Grüße
    monk77

  • Danke für Deine Hilfe. Aus dem Beitrag richtet sich nach einer alphabetischen Ordnung. Ich möchte lediglich alt und neu vertauschen (also alt zuerst, dann neu). Davon abgesehen, ist mir ein Rätsel wo ich die von dir deklarierte codezeile finden soll. Ich habe sämtliche php-Dateien durchgekrammt (index.php einzelne_seite.php, usw.) und konnte diese Zeile nirgendwo finden. Oder muss dies direkt in der Datenbank geändert werden?

    Grüße
    monk77

  • Lies dir den Beitrag dort genau durch, dann kommst du drauf.

    Der Aufruf von query_posts() muss vor dem Aufruf von the_loop() erfolgen, also z.B. in der index.php oder, wenn vorhanden, der the_loop.php.

    Guck dir auch mal die Parameter von query_posts() genauer an.

    Du benötigst eigentlich nur "order=asc", orderby und posts_per_page aus dem Beispiel mit der alphabetischen Reihenfolge sind für dich irrelevant.

    So, mehr Hilfe gibts aber nicht, den Rest bekommst du sicher alleine hin. ;-)

  • Hi,

    ich habe es soweit kapiert. Es gibt übrigens eine deutsche weitaus ausführlichere Erklärung:

    Template Tags/query posts − WordDoku

    Ich habe alles vor dem Loop eingefügt. Jetzt habe ich allerdings das Problem, dass er mir jetzt immer eine bestimmte Kategorie beim Aufrufen der Seite ausspuckt. Das heisst, meine voreingestellte Startseite wird jetzt nicht mehr erkannt. Sie ist zwar weiterhin da, aber nicht als Startseite. Ich vermute, dass hängt damit zusammen, dass die Startseite wohl erst nach dem Loop erfasst wird. oder?

    Hier ist der code, den ich in die index.php eingegeben habe. Achja und bei Eingabe von posts_per_page=10 werden zwar exakt 10 Beiträge angezeigt, die anderen verschwinden aber, sprich sie werden nicht auf verschiedene Seiten aufgeteilt.

  • Es gibt übrigens eine deutsche weitaus ausführlichere Erklärung.


    Okay, kann sein. Ich guck immer in der englischen Doku, weil da die Informationen meistens aktueller sind. ;-)

    Zitat

    Jetzt habe ich allerdings das Problem, dass er mir jetzt immer eine bestimmte Kategorie beim Aufrufen der Seite ausspuckt.


    Entweder mit is_home() oder is_page(ID):

    PHP
    <?php if (is_page() [COLOR="Red"]and is_page(ID der Startseite)[/COLOR] and ($notfound != '1')) : ?>
    Zitat

    Achja und bei Eingabe von posts_per_page=10 werden zwar exakt 10 Beiträge angezeigt, die anderen verschwinden aber, sprich sie werden nicht auf verschiedene Seiten aufgeteilt.


    Das ist möglich, da die posts_per_page-Anweisung nur für den Loop gilt, aber evtl. nicht für die Navigation. Ist die '10' abweichend von deiner normalen Einstellung im Tellerrand? Wenn nicht, lass den Parameter einfach weg.

  • Ich flippe noch aus. Das habe ich alles gemacht. Jetzt habe ich zwar meine Startseite wieder, aber:

    1.) kann meine Startseite durch Kommentare ergänzt werden, obwohl das Häkchen nicht gesetzt ist. Im ganzen sieht die Startseite jetzt aus wie ein Beitrag einer Rubrik. Vorher war sie eine statische Seite.

    2.) Meine Rubriken werden jetzt in Seiten aufgeteilt, wobei er immer mit Seite 2 beginnt. Darüber hinaus fängt er mit dem aktuellesten Beitrag von Seite 2 an.

    Ich gebs auf. Ich hänge seit gestern nachmittag an dieser Idee. Trotzdem danke für Deine Hilfe.

    so sah es am Ende aus:

    PHP
    <!-- pages -->
        <?php if (is_page()and is_page(ID3) and ($notfound != '1')) : ?>
               <?php query_posts($query_string . '&order=asc');  ?>
    
    
            
            <?php while (have_posts()) : the_post(); ?>

    Grüße
    Monk

  • Ich habe mich heute noch einmal mit dieser query_posts-Geschichte auseinander gesetzt. Sollte dies nur in einer der template-Seite verändert werden oder in sämtlichen, die den Loop enthalten?

    In meinem Theme "cityscape" ist dieser Loop nämlich in sämtlichen Dateien enhalten (index.php, archive.php, search.php, usw.)

    Zitat

    <?php get_header();?>
    <div id="main">
    <div id="content">
    ///Wenn ich hier query_post einsetzen, führt es trotzdem nicht zum Erfolg.///
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

    Ich möchte nachwievor, dass die älteren Beiträge zuerst erscheinen und chronologisch nach unten immer neuer werden. Das muss sich doch irgendwie machen lassen.

    Bisher habe ich für query_posts folgende codezeile benutzt:

    Zitat

    <?php query_posts($query_string . "&order=ASC") ?>

    Der code sieht also im Endeffekt so aus. Die Reihenfolge ändert sich trotzdem nicht. Noch immer werden die neuen posts zuerst angezeigt.

    Zitat

    <?php get_header();?>
    <div id="main">
    <div id="content">
    <?php query_posts($query_string . "&order=ASC"); ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

  • Ich habe mich heute noch einmal mit dieser query_posts-Geschichte auseinander gesetzt. Sollte dies nur in einer der template-Seite verändert werden oder in sämtlichen, die den Loop enthalten?


    Überall wo du die Reihenfolge geändert haben willst. Du kannst es ja - wenn du es global für alle Loops haben willst - auch in der header.php aufrufen.

    Zitat

    Bisher habe ich für query_posts folgende codezeile benutzt:

    PHP
    <?php query_posts($query_string . "&order=ASC") ?>


    Was steht in $query_string? Möglicherweise etwas, was deine Sortierreihenfolge überschreibt? Versuchs vielleicht mal nur mit:

    PHP
    <?php query_posts("order=asc"); ?>


    oder

    PHP
    <?php query_posts("orderby=date&order=asc"); ?>
  • Hi,

    lieb, dass Du mir nochmal helfen möchtest. :-D

    Zuerst habe ich nun alles in der header.php eingetragen (ganz unten in der letzten Zeile). Das bewirkte leider, dass eine einzige Kategorie permanent geladen wurde. Andere Kategorien oder Seiten konnten nicht mehr geladen werden.

    Dann habe ich einen anderen Weg eingeschlagen und habe alle Dateien im Template, in denen ich den Loop sichten konnte, mit:

    Zitat

    <?php query_posts("orderby=date&order=asc"); ?>

    versehen. Dazu gehören (index.php, page.php, single.php, search.php und archive.php). Leider erhalten ich auch hier nur noch eine Seite und andere Seiten lassen sich nicht mehr aufrufen. Mir scheint, dass sie kurz geladen werden, aber direkt von der "neuen, selbsternannten" Standard-Kategorie überschrieben werden.

    Meintest Du mit header.php, die im template-Ordner oder die im root-verzeichnis?

    Habe eben noch etwas im Forum gestöbert und habe da folgendes entdeckt.

    In der Index, im Rootverzeichnis lässt sich der Befehl:

    Zitat

    &order=asc

    in den ersten Block des php-codes eintragen (zwischen define und require) und das hat wahrhaftig funktioniert. Da hatte ich nur das Problem, dass meine Startseite nicht mehr als solche funktionierte. Sie wurde also überschrieben.

    Grüße
    monk77

    Einmal editiert, zuletzt von monk77 (14. Oktober 2007 um 22:21)

  • Danke Dir. Das soll laut Doku überhaupt kein Problem sein. Einfach diese kleine code-Zeile in der Index vor dem Loop eingeben und fertig. In der Praxis sieht es aber wohl doch etwas anders aus. Wäre lieb von Dir, wenn Du es mal bei Dir testen könntest.

    Grüße
    monk77:-D

  • Sowas funktionierte ja bis WP Version 2.2 fantastisch mit dem Plugin Custom Query String. Möchte das nicht vielleicht mal jemand für WP 2.3 anpassen? :-D Wenn ich irgendeine Ahnung davon hätte, würd ich es ja machen, aber leider reicht mein Wissen dazu nicht.

  • So, habs grade mal auf meinem Testblog getestet:

    PHP
    <?php query_posts($query_string . '&order=asc'); ?>


    funktioniert einwandfrei (Aufruf unmittelbar vor the_loop, d.h. have_posts()), die Reihenfolge der Beiträge wird umgedreht, der älteste steht oben.
    $query_string ist bei mir vor dem Aufruf von query_posts ein leerer String.

  • Ich habe es stets vor dem loop eingetragen. Wo genau hast Du diesen code eingefügt, sprich in welcher Datei?Nur in der Index.php oder in sämtlichen Seiten des templates, in denen dieser Loop vorkommt? Wenigstens geht der code schonmal, wenn auch nicht bei mir. Egal, hauptsache, es geht, das macht Mut den Kopf nicht hängenzulassen.

    Mir ist nochwas eingefallen. Hast Du in Deinem blog eine stat. Startseite? Genau diese wird jedesmal bei Eingabe des codes überschrieben.

    Einmal editiert, zuletzt von monk77 (16. Oktober 2007 um 05:02)

  • Ich hab mir testweise meine index.php auf home.php kopiert, und dort den Code eingefügt. Wie gesagt unmittelbar vor have_posts(). (In meinem Theme gibt es eine the_loop.php, vor deren Aufurf oder in dieser an erster Stelle wäre auch möglich gewesen). Wie gesagt, natürlich muss das in allen Templatedateien stehen, die den Loop aufrufen und wo die Reihenfolge umgedreht werden soll.

    Wenn du eine statische Startseite hast, dann musst du möglicherweise die Frontpage ausschließen. Also in etwa so:

    PHP
    <?php
    if ( !is_home() ) {
      query_posts(...);
    }
    ?>
  • Aber es müsste doch theoretisich auch gehen, wenn ich die query_posts ganz unten in den Header eintrage. Der wird doch von jeder xxx.php herangezogen. Dementsprechend würde query_posts dann immer vor dem Loop stehen. Das versuche ich jetzt nochmal.

    Habe mich heute ein Stückweit mehr in wordpress hereingefuchst und beginne so langsam zu verstehen, wie das mit den einzelnen php-Dateien funktionert. Habe jetzt auch mein template selbständig editiert und ein wenig umgebaut. Wordpress ist wirklich ein verdammt geiles Stück Software, was einem eine Menge Arbeit beim Entwerfen einer Webseite abnimmt. Theoretisch muss man sich so nur noch um das Design kümmern. Alles andere ist stets identisch.

    Aber lange Rede, kurzer Sinn: Also nochmal query_posts in die header.php. Das wage ich jetzt nochmal in der Hoffnung, dass es endlich funktioniert.:-D

    Grüße
    monk77

    edit: Habe es gerade nochmal kurz getestet.

    Ich habe in der letzten Zeile der header.php -

    Zitat

    <?php query_posts("orderby=date&order=asc"); ?>

    eingegeben.

    Jetzt ruft er aber nur noch die Kategorie (ID14) auf. Sortiert sind die Beiträge jetzt nach Datum nach unten immer jünger werdend. Mir ist allerdings ein Rätsel, warum gerade cat14. Ich vermute mal, weil ich die als letztes geöffnet hatte. Lustigerweise entspricht der Inhalt, den er aufruft, nicht der regulären Kategorie ID14. In dieser listet er mir nämlich jetzt alle(!) Beiträge chronologisch auf (also in Kategoie 14 listet er mir die Beiträge des ganzen blogs auf.).

    Ich muss wahrscheinlich doch den mühsamen Weg über alle php-Dateien, in denen der Loop vorkommt, gehen. Ich halte Dich jedenfalls mit meinem Abenteuer auf dem Laufenden.;-)

    Einmal editiert, zuletzt von monk77 (16. Oktober 2007 um 18:36)

  • So, ich habe es nun nochmal in allen Dateien getestet. Das Ergebnis ist das gleiche. Danach zeigt er mir nur noch die eine Kategorie an, in der die Beiträge des gesamten blogs enthalten sind. Ich versuche nun noch einmal den if home-code einzufügen. Vielleicht schafft das Abhilfe. Theoretisch sagt mir das aber, dass man diesen query_posts_code wirklich als letzte Zeile in der header.php einfügen kann. Bisher war die Konsequenz ja die Gleiche.

Jetzt mitmachen!

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