En el pasado, hemos compartido cómo hacer que las publicaciones expiren en WordPress usando el Plugin Post Expirator. Bueno, al crear un sitio de listado de eventos, encontramos que este plugin era muy útil. Podemos eliminar fácilmente los listados de eventos que han expirado. En segundo lugar, gracias a este plugin, también es muy fácil ordenar las publicaciones por fecha de expiración de la publicación. En este artículo, le mostraremos cómo ordenar las publicaciones por fecha de expiración de la publicación en WordPress.
Código actualizado para reflejar los cambios en el plugin donde cambiaron el nombre del campo personalizado. Gracias Tajim por informarnos en los comentarios.
En nuestro proyecto particular, teníamos Eventos como un Tipo de Publicación Personalizado. Ahora, esto es para una organización sin fines de lucro que organiza aproximadamente un evento al mes, así que simplemente creamos un bucle para poner en su página de eventos. Puede usar el código en su barra lateral o en cualquier otro lugar que desee.
<?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; ?>
El truco es utilizar meta_key y luego user oderby meta_value. Ponerlo en Orden Ascendente muestra el evento que se acerca (que expira pronto). Ejemplo de nuestro listado de eventos:

Tenga en cuenta que para que esto funcione, DEBE usar el Plugin Post Expirator.
Si tiene alguna pregunta, no dude en preguntar en los comentarios a continuación.

Francis Waller
Hola, estoy intentando hacer que esto funcione en mis productos de WooCommerce que deben ser manipulados para ser cursos externos que expiran en una fecha determinada. Realmente necesito ordenarlos por fecha de vencimiento, no estoy seguro de lo que estoy haciendo mal. Gracias
dtp
¿Es posible mostrar las publicaciones que finalizan hasta el día siguiente o la próxima semana, mes, etc.
Quiero crear un sitio que muestre todas las publicaciones que finalizan al día siguiente. y una que muestre todas las publicaciones que finalizan la próxima semana.
¿Alguna sugerencia?
James Parkin
He estado intentando hacer que este código funcione con un tema secundario de Genesis Pro. Creé varias publicaciones con fechas futuras. Agregué este código a las barras laterales a través de códigos cortos e intenté dentro del archivo functions.php. No estoy usando campos personalizados ni agregando información.
Se agradecerían ideas
James
He estado intentando hacer que esto funcione sin éxito. Lo publiqué en la barra lateral, functions.php y como códigos cortos. Se agradecería cualquier ayuda.
James
No he podido hacer que esto funcione con un tema secundario de Genesis Pro. Lo agregué a las últimas líneas del archivo functions.php. También agregué valores meta. No estoy seguro por qué no se publica en orden ASC por fecha de vencimiento.
gracias de antemano
JP
Las publicaciones como esta son la razón por la que amo Internet (y los blogs como el tuyo). Esto es exactamente lo que estaba buscando y no podría haber sido presentado de manera más simple. ¡Gracias!
Dan
Justo lo que estaba buscando - ¡gracias!
Tajim
Solo quería decir que en la versión actual de este plugin, el nombre del campo personalizado ha cambiado de
expiration-date a _expiration-date.
El campo personalizado está oculto. Así que por favor actualice el código anterior.
Saludos
Tajim
AMBA JUNIOR
Gracias por esto. Me preguntaba cómo agregaste las imágenes de fecha a las publicaciones
Personal editorial
Extrajimos la información meta que este plugin almacena en los campos personalizados de la publicación. Luego la estilamos. Era una imagen de fondo CSS y superposición de texto.
Administrador
Amba Junior
Gracias por tus comentarios. ¿Estaría bien que me enviaras un código de ejemplo sobre esto? Gracias de antemano.
Personal editorial
Desafortunadamente, no ofrecemos eso como parte de nuestro servicio gratuito. Eres más que bienvenido a contratarnos para escribir un fragmento personalizado para ti.
Steve Combes
Gracias por la excelente publicación.
Si quisiera mostrar la fecha de vencimiento de la publicación en el bucle, ¿qué código podría usar?
Personal editorial
Necesitarías usar la función get_post_meta y llamar a la clave meta "expiration-date"
El ejemplo sería algo como esto:
1-click Use in WordPress
Administrador
Adam
Lo cambié a '_expiration-date' y estoy obteniendo los datos, pero ¿cómo volvería a ordenar esto para que se muestre la fecha correcta? Mi fecha es el 1 de marzo de 2015 y lo que se muestra es "1425254340"
Gracias,
Kitsts
Entonces, para un principiante total, ¿dónde pondría este código para que se ordene por fecha de vencimiento?
Personal editorial
Este artículo no es para principiantes totales. Porque tienes que tener una buena comprensión de cómo funcionan los temas de WordPress para que este código funcione con tu tema específico.
Administrador
CuriousObserver
Si esto no es para principiantes, ¿por qué lo publicaste en wpbeginner.com? Yo también tengo dificultades para insertar esto en mi blog y me gustaría ver una respuesta a la pregunta de KITSTS.
Personal editorial
Aquí en WPBeginner, definimos a los principiantes en varios niveles. Principiante blogger, también conocido como principiante total (recién comenzando a bloguear, no sabe qué es RSS, FTP, etc.). Diseñador de temas principiante (sabe HTML+CSS, pero no tiene idea de cómo crear temas en WordPress). Desarrollador de plugins principiante (conoce el concepto general de programación, pero no específico de WordPress).
La razón por la que no podemos responder a la pregunta de KITST es porque es imposible responder con la información proporcionada. El código compartido en el artículo es un bucle estándar de WordPress. Dónde lo pegues en tu tema variará según tus necesidades y también el tipo de tema que estés utilizando.
Si estás usando un tema hijo, lo más probable es que ese código termine en tu archivo functions.php, por lo que puedes engancharlo a la función proporcionada por el framework del tema.
Si estás usando otro tema de WordPress, el código puede ir en varios archivos de plantilla diferentes (index.php, sidebar.php, archive.php, archive-{posttype}.php, footer.php, header.php, etc.). Cada tema está organizado de manera diferente, lo que hace imposible que te demos una ubicación exacta donde pegar este código.
Ten en cuenta también que el bucle que compartimos anteriormente proviene de un ejemplo de trabajo que creamos utilizando un tipo de publicación personalizado llamado 'events'. Es posible que no quieras usarlo para un tipo de publicación personalizado llamado 'events'. Quizás quieras usarlo para un tipo de publicación diferente llamado 'deals'.
Este artículo estaba destinado a diseñadores de temas principiantes y/o desarrolladores principiantes que buscan una forma fácil de hacer esto.
G J
Me preguntaba, ¿qué plugin se usa para mostrar los próximos eventos en el ejemplo anterior?
Gracias por un artículo encantador…
Personal editorial
Eso no fue un plugin. Fue solo estilo personalizado para mostrar un tipo de publicación personalizado usando el código del bucle que compartimos en este artículo.
Administrador
G J
Ahhh... ok, ¿es posible que me des un ejemplo de "Todo el contenido del bucle va aquí"? Estoy actualizando la página web de una ONG y me gustó esta forma de mostrar los eventos. Como habrás notado, soy principiante, así que agradecería mucho tu ayuda ;o)...
Personal editorial
El código del bucle es esencialmente la etiqueta php the_title(); para mostrar el título. Otro campo personalizado para mostrar la fecha. El bucle se explica bastante bien aquí:
http://codex.wordpress.org/The_Loop
Usamos estilo (div/imágenes/css) para que se viera así. Esta publicación trata sobre cómo ordenar las publicaciones por fecha de expiración, y el artículo muestra precisamente eso. El ejemplo utilizado es algo que hicimos para nuestro cliente, por lo que desafortunadamente no podemos compartir las imágenes/estilo por los que pagaron. Envíanos un correo electrónico si estás interesado en que hagamos esto por ti. Tenemos tarifas especiales para organizaciones sin fines de lucro.
Jacko
Esta es una función genial. Hay varias situaciones en las que esto es lo que necesitas hacer.
PD
Este sitio web tiene uno de mis diseños favoritos. El #IBCT se trata de encontrar al mejor bloguero del mundo. Tu sitio web ha llegado a las semifinales.