✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Aggiungi un prossimo post casuale nel modello di pagina di WordPress utilizzando SQL

3

Potresti ricevere spesso consigli su come migliorare la SEO (ottimizzazione per i motori di ricerca) aggiungendo link ai tuoi post precedenti quando pubblichi un nuovo post. Questo aiuta ad aumentare il traffico e funziona in modo simile a plug-in come "Post relativi" ma solo in modo più semplice.

Tutti i post di wordpress sono memorizzati nella tabella, ad esempio wp_posts e all’interno di questa tabella troverai post_title, post_name e queste colonne sono piuttosto semplici. A seconda delle configurazioni degli URL dei tuoi post, potresti avere un diverso formato di permalink che può essere configurato nella sezione Impostazioni – Collegamento permanente.

Il seguente codice PHP può essere inserito nel tuo modello di pagina, normalmente single.php che è il modello di post singolo o page.php per il modello di pagina.

Modifica wp_posts di conseguenza poiché potrebbe variare leggermente. La query SQL restituisce un post casuale in cui esclude le pagine, o menu_items, collegamenti ecc. E lo stato del post dovrebbe essere pubblicato escludendo la bozza. Il limite 1 restituisce solo 1 post. Quindi, se desideri un post precedente, potresti considerare di modificarlo per limitare 2.

Il permalink sul mio sito si basa sul post_name che è più SEO friendly. Potresti anche personalizzarlo. Anche la query SQL può essere personalizzata. Ad esempio, potresti voler restituire post pertinenti invece di post casuali facendo corrispondere il titlevalore in base al titolo del post corrente. Oppure vuoi davvero restituire il suo post precedente o successivo ordinato per data di pubblicazione, potresti voler utilizzare il campo ‘post_id’.

Commenti

Yu – “Fantastico, casuale è davvero bello. Inoltre, assicurati che quello casuale sia correlato al post corrente. Ma questo di solito non è un grosso problema fintanto che il blog è per un singolo genere.

Anche l’ordine di RAND() funziona bene per migliaia di record. (di solito il caso di un normale blog). Ma brucerà il tuo database se hai milioni di record nella stessa tabella che corrisponde ai criteri di ricerca."

Sì, l’ ordine SQL di rand() è un po’ complicato e lento. Deve recuperare tutti i record e ordinarli in modo casuale. È considerato a bassa efficienza quando le dimensioni del tavolo sono medie o grandi. Potresti voler usare il seguente trucco per ottenere un record casuale in modo più veloce utilizzando la funzione rand() in PHP.

// get total number of records $query = "select count(1) from `table`"; $result = mysql_query($query) or die(mysql_error()); $total = mysql_result($result, 0, 0); // get a random $r = rand(0, $total - 1); // return a number between 0 and $total - 1 inclusive using PHP $query = "select * from `table` limit $r, 1"; $result = mysql_query($query) or die(mysql_error());

Le cause del limite SQL specificano l’offset e il secondo parametro specifica il numero di record da recuperare.

Migliore registrazione casuale

Secondo quanto sopra, l’ ordine per rand() è estremamente inefficiente se hai una tabella molto grande perché per l’ordinamento (anche se vuoi solo un elemento), verrà invocata la funzione rand() ed è quello che non facciamo volere. Possiamo migliorare quanto sopra usando due query, la prima restituisce il numero totale di post e abbiamo una funzione casuale PHP e otteniamo il record casuale usando l’ istruzione limit.

Fonte di registrazione: helloacm.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More