En WordPress Hacker hay un tutorial que explica cómo hacer para publicar con WordPress entradas con fecha por llegar, es decir, que en vez de quedar programadas se publiquen con la fecha programada. Esto puede ser muy útil para confeccionar una lista de eventos por llegar o una agenda. Explico a continuación la modificación que hay que introducir en el Loop, el resto se puede consultar en el artículo de WordPress Hacker.
La idea es conseguir publicar entradas programadas de una categoría en concreto, no de todas, ya que queremos que el resto del blog siga funcionando normalmente. Necesitamos pues una sentencia condicional que discrimine las entradas de la categoría en cuestión dentro del Loop general, y la orden para que dichas entradas aun estando programadas se publiquen.
$my_query = new WP_Query(
‘category_name=agenda&showpost=-1&post_status=»future,publish»&order=DESC’);
while ($my_query->have_posts()) : $my_query->the_post();
$do_not_duplicate = $post->ID;
if (is_category(‘agenda’)) {
if (strtotime($post->post_date) < time() ) continue;
}
// Aquí el código que se quiera repetir con el Loop.
endwhile;[/code]
Las primeras dos líneas generan un Loop solo con las entradas de la categoría agenda.
- category_name tiene que tener asociado como valor el slug de la categoría, el nombre para URL, que se puede consultar en el editor de categorías de WordPress. No tiene por qué coincidir con el nombre de la categoría.
- showpost indica el número de entradas que se mostrarán en este Loop. -1 para todas las de la categoría.
- post_status indica el estado de las entradas a mostrar. Con future ordenamos que muestre como publicadas las programadas.
- order ordena las entradas alfabéticamente, cronológicamente, empezando por la primera o por la última… Con DES conseguimos que se muestren las entradas cronológicamente, empezando por la más reciente
El nombre de la categoría, agenda, es un ejemplo, recuerda cambiarlo por el correspondiente en tu caso.
10 comentarios
Buenas, me preguntaba como se pueden mostrar 4 eventos para un mismo día, con ese mismo código solo hace falta tocar el showpost de -1 a ¿4 ó -4?
Efectivamente furulais, tendrías que cambiar el valor de showpost a 4, el negativo es la manera de indicar que muestre todas. Así que para un número concreto utilizarmeos el número en cuestión, en positivo.
muy útil justo lo que buscaba gracias.
Excelente, me sirvió al 100%, gracias
Muchas gracias por el codigo, me sirvio de maravilla!
Genial, muchas gracias!! Pero tengo una duda, cuando entro en la ficha del post programado para un futuro, no me deja hacer comentarios. Te ha pasado?
Gracias!
Hola Roberto, no me ha pasado porque cuando he utilizado esta funcionalidad no he usado comentarios. Pero este código no debería influir en los comentarios: mira a ver si no los tienes deshabilitados en esa entrada, o para el tipo de post type que estés usando…
Bien, y dónde se pone este código? Gracias
Hola Antuan,
depende de dónde lo quieras mostrar lo debes incluir en un archivo u otro de tu theme. Para saber cómo funcionan los archivos de un theme mírate este esquema de la jerarquía de archivos de WordPress: WordPress template hierarchy.