X

Come visualizzare i post in ordine casuale e mantenere l'ordine di paginazione

Snippet di IsItWP

Vuoi visualizzare i post in ordine casuale mantenendo l'ordine di paginazione? Questo snippet ti permetterà di visualizzare un elenco casuale di post casuali che rimangono nello stesso ordine per tutta la durata della sessione. Questo assicura che la paginazione sia coerente.

Istruzioni:

Tutto quello che devi fare è aggiungere questo codice al file functions.php del tuo tema o in un plugin specifico per il sito:

session_start();

add_filter( 'posts_orderby', 'randomise_with_pagination' );
function randomise_with_pagination( $orderby ) {

	if( is_front_page() ) {

	  	// Reset seed on load of initial archive page
		if( ! get_query_var( 'paged' ) || get_query_var( 'paged' ) == 0 || get_query_var( 'paged' ) == 1 ) {
			if( isset( $_SESSION['seed'] ) ) {
				unset( $_SESSION['seed'] );
			}
		}
	
		// Get seed from session variable if it exists
		$seed = false;
		if( isset( $_SESSION['seed'] ) ) {
			$seed = $_SESSION['seed'];
		}
	
	    	// Set new seed if none exists
	    	if ( ! $seed ) {
	      		$seed = rand();
	      		$_SESSION['seed'] = $seed;
	    	}
	
	    	// Update ORDER BY clause to use seed
	    	$orderby = 'RAND(' . $seed . ')';
	}

	return $orderby;
}

Nota: Se questa è la prima volta che aggiungi snippet di codice in WordPress, consulta la nostra guida su come copiare / incollare correttamente snippet di codice in WordPress, in modo da non rompere accidentalmente il tuo sito.

Se ti è piaciuto questo snippet di codice, prendi in considerazione la lettura dei nostri altri articoli sul sito come: Confronto tra i 7 migliori page builder WordPress drag and drop.

Commenti   Lascia una risposta

  1. Grazie!

    Funziona a meraviglia... ma crea 9 pagine di post aggiuntive alla fine, che portano a "Pagina non trovata 404"

    Qualche idea?

    Grazie in anticipo.

    Josh

  2. Grazie! Funziona a meraviglia... ma che dire quando si usa un plugin di cache? Ho svuotato tutta la cache e ancora non funziona solo nella prima pagina.

    Qualsiasi pensiero è apprezzato.

    Grazie ancora.

    Josh.

  3. esattamente quello che stavo cercando, grazie!!

  4. Ciao, questo codice funziona molto bene. L'unico problema è che anche nella pagina principale mostra il widget "post recenti" in ordine casuale. Qualche idea su come cambiarlo?

    1. Non l'avevo notato finché non l'hai menzionato, ma abbiamo esattamente lo stesso problema, sono contento che tu l'abbia fatto notare.

      Sei riuscito a risolverlo in qualche modo?

  5. Ho inserito lo snippet usando il plugin per snippet. Sto solo configurando questo sito localmente e ho solo 4 post di prova. Non noto che i post si randomizzino... a che punto avviene la randomizzazione?

  6. Riccardo Vezzani 18 giugno 2019 alle 12:17

    GRAZIE!!

  7. GRAZIE MILLE!!! MI HAI AIUTATO TANTISSIMO!!!

    1. Shahzad Saeed 16 aprile 2019 alle 7:22

      Sono contento che lo snippet sia stato utile

  8. Questo dovrebbe risolvere il problema dei 'post casuali nella seconda pagina'? O serve a illustrare il problema? L'ho usato per generare alcuni post in ordine casuale, ma quando vado alla seconda pagina, la casualità ovviamente ricomincia, perché potrei ottenere gli stessi post o meno.

  9. Grazie mille. Stavo cercando un codice come questo per condividere più articoli con il lettore alla fine del mio sito.

Aggiungi un commento

Siamo lieti che tu abbia scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra normativa sulla privacy e tutti i link sono nofollow. NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.

Checklist per il lancio di WordPress

La Guida Definitiva per il Lancio di WordPress

Abbiamo raccolto tutti gli elementi essenziali della checklist per il lancio del tuo prossimo sito web WordPress in un comodo ebook.
Sì, Inviami l'eBook Gratuito!