Gallery zufällig jede Stunde ohne Duplikate aktualisieren?

Ich muss per Rand ohne Duplikate bestellen und meine Küche in jeder Stunde auf WordPress aktualisieren .

Überprüfen Sie den folgenden Code. Das möchte ich (PHP, MySQLi):

<?php include ("connect-sqli.php"); $rand = date("g"); // Update Gallery Randomly in every hour..... $query = "SELECT * FROM posts ORDER BY RAND($rand)"; 

F: Wie kann ich das auf einer WordPress-Site machen?

WordPress-Code:

 
query, array( 'posts_per_page' => 10, 'orderby' => 'rand', )); query_posts($args); $x = 0; while (have_posts()) : the_post(); if( $post->ID == $do_not_duplicate ) continue; ?>
Post Template Here

Solutions Collecting From Web of "Gallery zufällig jede Stunde ohne Duplikate aktualisieren?"

Sie versuchen, eine Reihe von Posts in zufälliger Reihenfolge anzuzeigen und anzuzeigen.

Zuerst:

  • Setzen Sie Ihren Code ein, um Bugs zu verhindern, während es liest, gibt es ein schließendes endif; in deinen Fragen Code aber keine wenn Aussage wurde jemals geöffnet. Wenn Sie richtig eingerückt wären, wäre das trivial, und gute Editoren machen das Einrücken für Sie automatisch
  • $do_not_duplicate ist nicht definiert
  • Verwenden query_post keinen Fall query_post . Welcher Ort oder welche Person Ihnen den Gebrauch zutraute, war falsch und förderte schlechte Praktiken, die zu häufigen und leicht vermeidbaren Problemen führen, zB Paginierungsprobleme

Wenn Sie versuchen, die auf einer Seite aufgelisteten Posts durch eine andere Liste mit zufällig angeordneten Posts zu ersetzen, sollten Sie den pre_get_posts Filter verwenden, um die Hauptabfrage zu modifizieren, anstatt Zeit zu verschwenden, indem Sie sie wegcasting und eine neue pre_get_posts .

Wenn Sie versuchen, eine Liste von Posts in einer Seitenleiste oder am Ende eines WP_Query , verwenden Sie WP_Query , z.

 $parameters = array( ... ); $query = new WP_Query( $parameters ); if ( $query->have_posts() ) { // posts were found while ( $query->have_posts() ) { // set the current post, then display it $query->the_post(); } // cleanup afterwards wp_reset_postdata(); } else { // nothing was found } 

Die Codex-Seite für WP_Query enthält eine vollständige Liste aller Parameter und ihrer Verwendung einschließlich orderby . Insbesondere erwähnt es einen rand Wert, um zufällige Beiträge auszuwählen. Bei diesen Optionen handelt es sich nicht um SQL. Daher wird das Platzieren von Raw SQL für die Zufälligkeit nicht funktionieren und wird nicht empfohlen.

Wenn du Duplikate verhindern möchtest, solltest du post__not_in um anzugeben, welche Posts nicht abgerufen werden sollen. Aber während du versuchst, ein Archiv oder eine Hauptabfrage zu ändern, glaube ich nicht, dass dir das hilft.

Stattdessen sollte etwas Ähnliches helfen:

 add_filter( 'pre_get_posts', function ( $query ) { if ( $query->is_main_query() && !is_admin() ) { $query->set( 'order', 'rand' ); } } ); 

Mit diesem Code werden alle Hauptabfragen im Frontend nach dem Zufallsprinzip geordnet. Sie müssen eine zusätzliche Überprüfung hinzufügen, um sicherzustellen, dass nur die gewünschte Seite / das Archiv nach dem Zufallsprinzip sortiert wird. Sie haben jedoch nicht angegeben, wo Ihre Abfrage durchgeführt wird Ich kann das nur erraten, aber es könnte eine interessante neue Frage ergeben