Zufällige Reihenfolge im WordPress Loop?

Lesezeit: 4 Minuten

Ich verwende den grundlegenden Schleifencode in einem Taxonomiearchiv (Künstler) und habe mich gefragt, wie Sie die Schleife so einstellen können, dass Posts in zufälliger Reihenfolge angezeigt werden (‘orderby’=>’rand’). Es scheint nicht zu funktionieren, wenn ich das Array hinzufügen? Jede Hilfe wäre toll!

        <?php
                // Start the Loop.
                while ( have_posts() ) : the_post();

                    /*
                     * Include the post format-specific template for the content. If you want to
                     * use this in a child theme, then include a file called called content-___.php
                     * (where ___ is the post format) and that will be used instead.
                     */
                    array ( 'orderby' => 'RAND' );
                    get_template_part( 'content', get_post_format() );

                endwhile;
                // Previous/next page navigation.
                twentyfourteen_paging_nav();

            else :
                // If no content, include the "No posts found" template.
                get_template_part( 'content', 'none' );

            endif;
        ?>

Benutzer-Avatar
Ravi Patel

 <?php  

$query = new WP_Query( array ( 'orderby' => 'rand', 'posts_per_page' => '-1' ) );

        if( $query->have_posts() ):
                // Start the Loop.
                while ( $query->have_posts() ) : $query->the_post();

                    /*
                     * Include the post format-specific template for the content. If you want to
                     * use this in a child theme, then include a file called called content-___.php
                     * (where ___ is the post format) and that will be used instead.
                     */

                    get_template_part( 'content', get_post_format() );

                endwhile;
                // Previous/next page navigation.
                twentyfourteen_paging_nav();

            else :
                // If no content, include the "No posts found" template.
                get_template_part( 'content', 'none' );

            endif;
        ?>

mehr Info für Abfrage

  • Du solltest tun while ( $query->have_posts() ) : $query->the_post(); beim Umgang mit Zoll wP_Query Objekt.

    – RRikesh

    14. März 2014 um 5:52 Uhr

  • Einfache und saubere Lösung! Beachten Sie, dass die Schleife in verschiedenen Dateien gefunden werden kann (z. B. index.php, home.php, template-centered.php usw.)

    – BurninLeo

    23. Juni 2017 um 8:25 Uhr


  • Perfekt. Vielen Dank!

    – tonyedwardspz

    26. September 2020 um 17:32 Uhr

query_posts(array( ‘showposts’ => 6, ‘orderby’ => ‘rand’, ‘category_name’ => ‘News’ //Sie können einen beliebigen Kategorienamen einfügen ));

Schöne Frage zuerst!

Sie können dies mit einer einfachen Verwendung der Funktion von PHP tun.
http://www.php.net/manual/en/function.shuffle.php

Befolgen Sie den folgenden Schritt:

  1. Als Erstes erhalten Sie alle Posts mit Abfragen
  2. Sie wissen, dass WordPress das Ergebnis im Array-Format liefert. Versuchen Sie also nicht, mehr zu codieren, es ist zu kompliziert.
  3. Jetzt haben Sie ein Array von Ergebnissen, also verwenden Sie einfach die PHP-Funktion shuffle.
    http://www.php.net/manual/en/function.shuffle.php

Bitte fragen Sie mich nach der Implementierung, wenn Sie Fragen haben.

Vielen Dank !

  • Das gilt nicht für das, was OP fragt.

    – RRikesh

    14. März 2014 um 5:51 Uhr

Benutzer-Avatar
zeitgenössisch

Versuche dies:

<?php

$args = array(
    'orderby' => 'rand'
);
$query = new WP_Query($args);

if (have_posts()) {     

    while ( $query->have_posts() ) : $query->the_post();

        get_template_part( 'content', get_post_format() );

    endwhile;
    // Previous/next page navigation.
    twentyfourteen_paging_nav();

else :
    // If no content, include the "No posts found" template.
    get_template_part( 'content', 'none' );

endif;

?>

Sie haben zwei Möglichkeiten, dies zu tun. Der erste Weg ist nicht der beste Weg, aber für Sie möglicherweise einfacher zu verstehen:

Verwenden von WP_Query

<?php

$args = array(
    'orderby' => 'random'
    );

$query = new WP_Query( $args );

if( $query->have_posts() ):
    // Start the Loop.
    while ( $query->have_posts() ) : $query->the_post();

        get_template_part( 'content', get_post_format() );

    endwhile;
    // Previous/next page navigation.
    twentyfourteen_paging_nav();

else :
    // If no content, include the "No posts found" template.
    get_template_part( 'content', 'none' );

endif;

Hier verwenden wir eine benutzerdefinierte WP_Query Objekt und orderby um zufällige Beiträge zu erhalten.


Verwendung von pre_get_posts

Der beste Weg, dies zu tun, ist die Verwendung von pre_get_post Aktion, um die Seitenausgabe automatisch zu ändern. Möglicherweise benötigen Sie jedoch etwas mehr Codierung.

  • Wenn Sie möchten, dass alle Ihre Posts in jeder Kategorie randomisiert werden, können Sie eine pre_get_post-Funktion wie folgt zu functions.php hinzufügen: add_action( ‘pre_get_posts’, ‘randomise’ ); function randomise($query) { $query->set(‘orderby’, ‘rand’); }

    – Toby Beresford

    2. November 2017 um 11:35 Uhr

  • Wenn Sie möchten, dass alle Ihre Posts in jeder Kategorie randomisiert werden, können Sie eine pre_get_post-Funktion wie folgt zu functions.php hinzufügen: add_action( ‘pre_get_posts’, ‘randomise’ ); function randomise($query) { $query->set(‘orderby’, ‘rand’); }

    – Toby Beresford

    2. November 2017 um 11:35 Uhr

1283540cookie-checkZufällige Reihenfolge im WordPress Loop?

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

Privacy policy