In passato, abbiamo condiviso come far scadere i post in WordPress utilizzando il Plugin Post Expirator. Bene, quando abbiamo creato un sito di elenchi di eventi, abbiamo trovato questo plugin estremamente utile. Possiamo facilmente eliminare gli elenchi di eventi scaduti. In secondo luogo, grazie a questo plugin, è anche molto facile ordinare i post per data di scadenza. In questo articolo, ti mostreremo come ordinare i post per data di scadenza in WordPress.
Codice aggiornato per riflettere le modifiche nel plugin dove hanno cambiato il nome del campo personalizzato. Grazie Tajim per avercelo fatto sapere nei commenti.
Nel nostro progetto particolare, avevamo gli Eventi come Custom Post Type. Ora questo è per un'organizzazione non profit che tiene circa un evento al mese, quindi abbiamo semplicemente creato un loop da inserire nella loro pagina eventi. Puoi usare il codice nella tua sidebar, o ovunque altro tu voglia.
<?php $args = array( 'post_type' => 'event', 'posts_per_page' => 15, 'order' => 'ASC', 'meta_key' => '_expiration-date', 'orderby' => 'meta_value' ); $eventloop = new WP_Query( $args ); if ( $eventloop->have_posts() ) : while ( $eventloop->have_posts() ) : $eventloop->the_post(); //All the Loop Content Goes Here endwhile; endif; ?>
Il trucco è utilizzare meta_key e poi user oderby meta_value. Metterlo in ordine ascendente mostra l'evento imminente (che scade più presto). Esempio del nostro elenco eventi:

Nota: affinché questo funzioni, DEVI utilizzare il Plugin Post Expirator.
Se hai domande, non esitare a chiedere nei commenti qui sotto.

Francis Waller
Ciao, sto cercando di far funzionare questo sui miei prodotti WooCommerce che devono essere manipolati per essere corsi esterni che scadono in una certa data. Ho davvero bisogno di ordinarli per data di scadenza, non sono sicuro di cosa sto sbagliando. Grazie
dtp
È possibile mostrare i post che scadono entro il giorno successivo o la settimana successiva, il mese successivo e così via.
Voglio creare un sito che mostri tutti i post che scadono il giorno successivo. e uno che mostri tutti i post che scadono la settimana successiva.
Suggerimenti?
James Parkin
Ho provato a far funzionare questo codice con un tema figlio Genesis Pro. Ho creato diversi post con date future. Aggiunto questo codice alle barre laterali tramite codici brevi e provato all'interno del file functions.php. Non sto usando campi personalizzati né aggiungendo informazioni.
Qualsiasi idea sarebbe apprezzata
James
Ho provato a far funzionare questo senza successo. L'ho pubblicato nella barra laterale, nel file functions.php e come codici brevi. Qualsiasi aiuto sarebbe apprezzato.
James
Non sono riuscito a far funzionare questo con un tema figlio Genesis Pro. L'ho aggiunto alle ultime righe del file functions.php. Ho aggiunto anche valori meta. Non sono sicuro del perché non venga pubblicato in ordine ASC per data di scadenza.
grazie in anticipo
JP
Post come questo sono il motivo per cui amo internet (e blog come il tuo). Questo è esattamente quello che stavo cercando e non avrebbe potuto essere presentato in modo più semplice. Grazie!
Dan
Esattamente quello che stavo cercando – grazie!
Tajim
Volevo solo dire che nella versione attuale di questo plugin il nome del campo personalizzato è cambiato da
expiration-date a _expiration-date.
Il campo personalizzato è nascosto. Quindi per favore aggiorna il codice sopra.
Saluti
Tajim
AMBA JUNIOR
Grazie per questo. Mi stavo chiedendo come hai aggiunto le immagini della data ai post
Staff editoriale
Abbiamo estratto le meta informazioni che questo plugin memorizza nei campi personalizzati del post. Poi le abbiamo stilizzate. Era un'immagine CSS di sfondo e un testo sovrapposto.
Amministratore
Amba Junior
Grazie per il feedback. Sarebbe possibile avere un esempio di codice da te su questo? Grazie in anticipo.
Staff editoriale
Sfortunatamente, non offriamo questo come parte del nostro servizio gratuito. Sei più che benvenuto ad assumerci per scrivere uno snippet personalizzato per te.
Steve Combes
Grazie per il fantastico post.
Se volessi visualizzare la data di scadenza del post nel loop, quale codice potrei usare?
Staff editoriale
Dovresti usare la funzione get_post_meta e chiamare la chiave meta "expiration-date"
Un esempio sarebbe qualcosa del genere:
1-click Use in WordPress
Amministratore
Adam
L'ho cambiato in '_expiration-date' e sto ottenendo i dati, ma come si potrebbe riordinare questo per visualizzare la data corretta? La mia data è il 1° marzo 2015 e quello che viene visualizzato è "1425254340"
Grazie,
Kitsts
Quindi, per un principiante assoluto, dove dovrei mettere questo codice affinché si ordini per scadenza?
Staff editoriale
Questo articolo non è per principianti assoluti. Perché devi avere una buona comprensione di come funzionano i temi di WordPress per far funzionare questo codice con il tuo tema specifico.
Amministratore
CuriousObserver
Se questo non è per principianti, perché l'hai pubblicato su wpbeginner.com? Anch'io ho difficoltà a inserirlo nel mio blog e vorrei vedere una risposta alla domanda di KITSTS.
Staff editoriale
Qui a WPBeginner, definiamo i principianti in vari livelli. Blogger principiante aka principiante assoluto (appena iniziato a bloggare, non sa cos'è RSS, FTP ecc.). Designer di temi principiante (conosce HTML+CSS, ma non ha idea di come creare temi in WordPress). Sviluppatore di plugin principiante (conosce il concetto generale della programmazione, ma non specifico di WordPress).
Il motivo per cui non possiamo rispondere alla domanda di KITST è perché è impossibile rispondere con le informazioni fornite. Il codice condiviso nell'articolo è un loop standard di WordPress. Dove lo incolli nel tuo tema varierà in base alle tue esigenze e anche al tipo di tema che stai utilizzando.
Se stai usando un tema figlio, allora molto probabilmente quel codice finirà nel tuo file functions.php, in modo da poterlo agganciare alla funzione fornita dal framework del tema.
Se stai utilizzando un altro tema WordPress, il codice può essere inserito in vari file di template (index.php, sidebar.php, archive.php, archive-{posttype}.php, footer.php, header.php, ecc.). Ogni tema è organizzato diversamente, il che rende impossibile per noi darti una posizione esatta in cui incollare questo codice.
Nota anche che il loop che abbiamo condiviso sopra proviene da un esempio di lavoro che abbiamo creato utilizzando un tipo di post personalizzato chiamato eventi. Potresti non volerlo usare per un tipo di post personalizzato eventi. Forse vuoi usarlo per un tipo di post diverso chiamato offerte.
Questo articolo era destinato a designer di temi principianti e/o sviluppatori principianti che cercano un modo semplice per farlo.
G J
Mi stavo chiedendo, quale plugin viene utilizzato per visualizzare gli eventi imminenti nell'esempio sopra?
Grazie per un articolo delizioso...
Staff editoriale
Non era un plugin. Era solo uno stile personalizzato per la visualizzazione di un tipo di post personalizzato utilizzando il codice del loop che abbiamo condiviso in questo articolo.
Amministratore
G J
Ahhh..ok, è possibile che tu mi dia un esempio su "Tutto il contenuto del loop va qui" Sto aggiornando la pagina web di una ONG e mi è piaciuto questo modo di visualizzare gli eventi. Come potresti aver notato sono un principiante, quindi apprezzerei davvero il tuo aiuto ;o)….
Staff editoriale
Il codice del loop è essenzialmente il tag php the_title(); per mostrare il titolo. Un altro campo personalizzato per mostrare la data. Il loop è spiegato abbastanza bene qui:
http://codex.wordpress.org/The_Loop
Abbiamo utilizzato lo styling (div/immagini/css) per farlo apparire in quel modo. Questo post riguarda come ordinare i post per data di scadenza, e l'articolo mostra proprio questo. L'esempio utilizzato è qualcosa che abbiamo fatto per il nostro cliente, quindi purtroppo non possiamo condividere le immagini/lo styling per cui hanno pagato. Inviaci un'email se sei interessato ad avercelo fatto per te. Abbiamo tariffe speciali per le non profit.
Jacko
Questa è una funzionalità interessante. Ci sono diverse situazioni in cui questo è ciò che devi fare.
PS
Questo sito web ha uno dei miei design preferiti. Il #IBCT riguarda la ricerca del miglior blogger del mondo. Il tuo sito web è arrivato in semifinale.