ordinare gli articoli in wordpress

Sto realizzando per un cliente un sito di notizie, basato sulla robusta piattaforma di WordPress, uno dei migliori programmi per gestione di contenuti, particolarmente indicato per tenere un blog. Fin qui nulla di strano: ricevuto il tema grafico in HTML, l’ho trasformato in un template di WordPress, ho aggiunto il mio editor visuale potenziato, ho configurato le solite cose. Poi è arrivata la richiesta difficile: i redattori devono poter decidere l’ordine degli articoli nella pagina iniziale. Come forse saprai, WordPress consente di mostrare gli articoli dal più recente in poi: fargli cambiare idea non è stato un giochetto da poco, ma alla fine ci sono riuscito. Ecco i passi che ho seguito.

Etichettare gli articoli

Non entrerò nei dettagli di come si scrive un tema per WordPress, esistono già delle ottime guide in merito, scritte proprio dagli sviluppatori del programma. Suppongo che tu sappia cosa sia il Loop: quella parte in cui si ottiene l’elenco degli articoli da mostrare all’utente. Prima di tutto va stabilito come assegnare l’ordine: io ho scelto un campo “custom” di quelli che puoi definire in fondo alla schermata di scrittura, e l’ho chiamato posizione. Se quindi ho 6 articoli in homepage, le mie posizioni andranno dalla 1 alla 6. Nella posizione 1 voglio far apparire l’articolo più recente che ha nel campo il valore 1, e così via.

Tutta questione di vettori

Dopo una lunga ricerca, ho trovato il pezzo che mi mancava, la funzione interna setup_postdata, con cui posso dire al sistema quale articolo usare per tutte le chiamate the_permalink, the_title, the_content che mi servono per disegnare graficamente l’articolo stesso all’interno della pagina. I passi a questo punto diventano quattro: ottenere l’elenco dei post, infilarli in un nuovo vettore avendo come chiave la posizione, ordinare il vettore, visualizzare il risultato. Trovi qui il codice sorgente da includere nel tuo tema.

20
Lascia una recensione

Please Login to comment
10 Comment authors
GiovanniMicheleandreacamuant Recent comment authors
  Subscribe  
più nuovi più vecchi più votati
Notificami
Monte
Ospite
Monte

Bravo, bell’idea, ma per la maggior parte dei casi ovviamente conviene la normale disposizione temporale!

Lionel Chollet
Ospite
Lionel Chollet

Hello, and thanks for your source code,

I’d like to order posts (ASC order) in my category archive pages according to the value (integer) of a custom field key (reference number).

Using the code presented here, I managed to do this, sort of (pun intended)… but i’d have to create a template page for each category (i.e., think of creating a new archive template every time a new category would be added), and some data were not displayed on the archive page (e.g., the tag data appeared blank…)

What could I do?

Jeff
Ospite
Jeff

Fantastic!! This is exactly what I was looking for! Thanks from Buenos Aires!

nicola
Ospite
nicola

non ho capito una cosa. In quale pagina php del tema va inserito questo codice?

viziodiforma
Ospite
viziodiforma

Ottimo, era proprio quello che mi serviva. Ma.. ho posizionato il codice nell’index del tema, ma non è accaduto nulla. Forse mi sono persa qualche passaggio :/
Mi aspettavo di avere la possibilità nel pannello di amministrazione di wp di scegliere la posizione degli articoli inserendo 1, 2,3.. Ho capito male?

viziodiforma
Ospite
viziodiforma

Ora ho capito 🙂 tks

ant
Ospite
ant

ciao, questa funzione sarebbe utilissima… purtroppo non capisco dove inserirla nel mio index.php
Uso come template Vina ( http://wordpress.org/extend/themes/vina )
Non trovo nessun ” foreach $post” ….
Grazie!
A.

camu
Ospite
camu

@ant: ho dato un’occhiata al codice sorgente del tuo tema, ed in effetti chi l’ha sviluppato ha usato un modo di programmarlo abbastanza contorto e di certo non elegante, per questo non l’hai trovato. Nel tuo caso andrebbe proprio riscritto il ciclo mescolando il loro codice al mio… se vuoi ti faccio vedere come, mandami una mail.

andrea
Ospite
andrea

Ho provato a iserire il tuo codice nell’index.php al posto del mio loop, uso wordpress 3 ma non visualizzo neanche il title degli articoli, con il tuo loop bisognerebbe vedere sole gli articoli giusto?

grazie buon lavoro!

Michele
Ospite

Ciao, ottima guida, vorrei chiederti una info se posso. E’ possibile ordinare gli articoli in maniera casuale?

camu
Ospite
camu

@Michele: si, per quello ti basta usare una normale get_posts con il parametro ‘rand’.

Michele
Ospite

In che modo dovrei usarla?

camu
Ospite
camu

@Michele: la gente che non si mette a leggere la documentazione mi sa molto di pigro 🙂 Volete tutti il piatto pronto e servito! Eppure il tuo è un “portale” sul mondo della tecnologia e dell’informatica 8)

Michele
Ospite

Forse mi sono espresso male nella domanda, la funzione ke mi hai mostrato crea un elenco random degli articoli del mio sito, io invece vorrei ke gli articoli venissero visualizzati in maniera random, è possibile?

Giovanni
Ospite
Giovanni

ciao, grazie per la funzione che è veramente utile.
Io ho la necessità di avere dei custom fields (su cui fare la query l’ordinamento, ovvero il tuo “posizione”) con valore uguale. La funzione adesso ne pubblica solo uno mentre io vorrei pubblicarli tutti. Nle mio caso specifico il custom field è la data di un evento e spesso ho più eventi (posts) che si svolgono la stessa data (posizione). Come posso risolvere? grazie mille