Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo hacer una agenda en WordPress: publicando posts futuros

Imago voragine.net
[actualizado el ]

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

  1. 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?

  2. 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.

    • Por alan •

    muy útil justo lo que buscaba gracias.

    • Por Daniel •

    Excelente, me sirvió al 100%, gracias

    • Por Daniel •

    Muchas gracias por el codigo, me sirvio de maravilla!

    • Por Roberto •

    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!

  3. 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…

    • Por Antuan •

    Bien, y dónde se pone este código? Gracias

    1. 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.

×

Responder al comentario de skotperez

*
*

 

Un trackback