Ich möchte Posts mit WP_Query-Funktionen anzeigen. Ich möchte auch eine zufällige Reihenfolge hinzufügen.
Also versuche ich es
<?php
$temp = $wp_query;
$wp_query= null;
$args = array(
'orderby' => 'Rand',
);
$wp_query = new WP_Query($args);
$wp_query->query('showposts=8' . '&paged='.$paged );
while ($wp_query->have_posts()) : $wp_query->the_post();
?>
Ich kann 8 Beiträge sehen, aber es scheint, dass 'orderby' => 'Rand' nicht funktioniert.
Es ist schon eine Weile her, dass ich mit WordPress gearbeitet habe, aber es scheint mir, dass:
Zuerst, wenn Sie während der Instanziierung $args
an den Konstruktor übergeben.
Zweitens, wenn Sie query()
aufrufen.
Damit überschreiben Sie im Wesentlichen die erste Abfrage (die die orderby = Rand enthält).
In der Dokumentation von WP_Query wird erwähnt, dass get_posts()
aufgerufen wird, wenn Sie einen Parameter im Konstruktor verwenden. Dieser sollte nicht zweimal aufgerufen werden:
& get_posts () - Holt die angeforderten Posts aus der Datenbank und gibt sie zurück. Füllen Sie auch $ posts und $ post_count aus. Anmerkung: Wird während der Erstellung aufgerufen, wenn WP_Query mit Argumenten erstellt wird. Es ist nicht idempotent und sollte nicht mehrmals für dasselbe Abfrageobjekt aufgerufen werden. Andernfalls kann es zu einer fehlerhaften Abfrage kommen.
In der Dokumentation der query()
-Methode heißt es, dass sie get_posts()
aufruft und daher zweimal aufgerufen wird:
& query ($ query) - Call parse_query () und get_posts () . Gibt die Ergebnisse von get_posts () zurück.
$args
eingeben oderorderby
ebenfalls zum Aufruf $wp_query->query(..)
hinzu.Schauen Sie sich die WP_Query-Klassenreferenz an und arbeiten Sie sich von dort aus hoch. Probieren Sie die grundlegenden Beispiele aus und spielen Sie mit den Parametern, bis Sie ein Gefühl dafür bekommen, wie WP_Query und die Schleife funktionieren.
https://codex.wordpress.org/Class_Reference/WP_Query
Der Grund, warum Ihre Abfrage nicht funktioniert, ist, dass Sie die Parameter nicht korrekt übergeben (verwenden Sie das Array args für alle) und veraltete Parameter verwenden.