WordPress ändert die Reihenfolge der Beiträge durch die Standardschleife

Lesezeit: 2 Minuten

Ist es möglich, Beiträge zu bestellen, während die Standard-Wordpress-Schleife intakt bleibt (dh ohne eine ganz neue WP_Query erstellen zu müssen?

Mit Standardschleife meine ich:

<?php if ( have_posts() ) : ?>


            <?php /* The loop */ ?>
            <?php while ( have_posts() ) : the_post(); ?>

Kann ich die Bestellung innerhalb dieses Codes spezifizieren?

Wie dokumentiert bei query_posts Funktionsseite:

es ist stark empfohlen, dass Sie die verwenden pre_get_posts filtern Sie stattdessen und ändern Sie die Hauptabfrage durch Überprüfen is_main_query.

Sie können eine neue Aktion hinzufügen pre_get_posts in deinem Thema functions.php Datei, wie:

function homepage_posts($query)
{
    if ($query->is_home() && $query->is_main_query())
    {
        $query->set( 'orderby', 'title' );
    }
}
add_action('pre_get_posts', 'homepage_posts');

  • Danke, ich habe versucht, Folgendes zu meiner Datei functions.php hinzuzufügen, aber es hatte keine Wirkung. Ich versuche, die Reihenfolge eines benutzerdefinierten Beitragstyps auf der Seite category.php zufällig zu erhalten: function cat_posts($query) { if ($query->is_category() && $query->is_main_query()) { $query->set( 'orderby', 'rand' ); } } add_action('pre_get_posts', 'cat_posts');

    – Kev

    27. Oktober 2013 um 19:07 Uhr

  • @Kev du solltest deine ändern if Zustand zu if($query->is_category)

    – revo

    27. Oktober 2013 um 19:11 Uhr


Benutzeravatar von Kevin Regenrek
Kevin Regenrek

wp_reset_query() ist der Weg zu gehen

Beispielausschnitt

<?php query_posts(array('orderby'=>'title','order'=>'DESC'));

if ( have_posts() ) :
    while ( have_posts() ) : the_post(); ?>
        <a href="<?php the_permalink() ?>"><?php the_title() ?></a><br /><?php
    endwhile;
endif;
wp_reset_query();

Aber denken Sie daran: query_posts() ändert Ihre Hauptabfrage und wird nicht empfohlen. Nur verwenden, wenn es absolut notwendig ist (siehe query_posts: Vorbehalte). Das Erstellen einer neuen Instanz von WP_Query oder get_posts() wird für sekundäre Schleifen bevorzugt.

  • Danke, ich habe es versucht, aber folgende Fehlermeldung erhalten: syntax error, unexpected T_DOUBLE_ARROW

    – Kev

    27. Oktober 2013 um 19:08 Uhr


1387200cookie-checkWordPress ändert die Reihenfolge der Beiträge durch die Standardschleife

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy