X

Cum să afișezi postările într-o ordine aleatorie și să păstrezi ordinea paginării

Fragmente de IsItWP

Doriți să afișați postările într-o ordine aleatorie, păstrând în același timp ordinea paginării? Acest fragment vă va permite să afișați o listă aleatorie de postări aleatorii care rămân în aceeași ordine atâta timp cât sesiunea există. Acest lucru asigură că paginarea va fi consecventă.

Instrucțiuni:

Tot ce trebuie să faceți este să adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului:

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;
}

Notă: Dacă este prima dată când adăugați secvențe de cod în WordPress, consultați ghidul nostru despre cum să copiați / lipiți corect secvențe de cod în WordPress, pentru a nu vă defecta accidental site-ul.

Dacă v-a plăcut acest fragment de cod, vă rugăm să luați în considerare să consultați celelalte articole de pe site, cum ar fi: Cele mai bune 7 comparatoare de pagini WordPress Drag and Drop.

Comentarii   Lasă un răspuns

  1. Mulțumesc!

    Funcționează ca prin farmec... dar creează 9 pagini suplimentare de postări la sfârșit, ducând la „Pagina 404 nu a fost găsită”

    Aveți vreo idee?

    Mulțumesc anticipat.

    Josh

  2. Mulțumesc! Funcționează ca prin farmec... dar Ce se întâmplă când folosiți un plugin de cache?... Am șters tot cache-ul și totuși nu funcționează doar pe prima pagină.

    Orice idee este apreciată.

    Mulțumesc încă o dată.

    Josh.

  3. exact ce căutam, mulțumesc!!

  4. Bună, acest cod funcționează foarte bine. Singura problemă este că pe pagina principală afișează și widgetul „postări recente” în ordine aleatorie. Aveți vreo idee cum să schimbați asta?

    1. Nu am observat până când ați menționat, dar avem exact aceeași problemă, mă bucur că ați atras atenția asupra ei.

      Ați reușit să o rezolvați cumva?

  5. Am introdus fragmentul folosind pluginul de fragmente. Configurez acest site local și am doar 4 postări de test. Nu observ postările să se randomizeze... la ce punct se întâmplă randomizarea?

  6. Riccardo Vezzani June 18, 2019 at 12:17 pm

    MULȚUMESC!!

  7. MULȚUMESC FOARTE MULT!!! M-AI AJUTAT FOARTE MULT!!!

    1. Mă bucur că fragmentul a fost util

  8. Acesta ar trebui să rezolve problema „postări aleatorii pe a doua pagină”? Sau este pentru a ilustra problema? L-am folosit pentru a genera câteva postări ordonate aleatoriu, dar când ajung la a doua pagină, randomizarea evident începe din nou, deoarece pot sau nu să apară aceleași postări.

  9. Mulțumesc mult. Căutam un cod de genul acesta pentru a partaja mai multe articole cu cititorul la sfârșitul site-ului meu.

Adaugă un comentariu

Suntem bucuroși că ați ales să lăsați un comentariu. Vă rugăm să rețineți că toate comentariile sunt moderate conform politicii noastre de confidențialitate, iar toate linkurile sunt nofollow. NU folosiți cuvinte cheie în câmpul nume. Să avem o conversație personală și semnificativă.

Lista de verificare pentru lansarea WordPress

Lista de verificare finală pentru lansarea WordPress

Am compilat toate elementele esențiale de verificare pentru lansarea următorului dvs. site WordPress într-o singură carte electronică la îndemână.
Da, trimite-mi eBook-ul gratuit!