Poner fecha de caducidad a un post en WordPress

¿Lamentas que WordPress no tenga una característica para publicar una entrada durante solamente 2 días, o una semana? Aquí tienes un código que puedes utilizar en tu tema de WordPress, para poder crear un post que expire en una fecha y hora determinadas. Estos son los pasos a seguir:

1. Editar el tema

Edita tu tema y substituye el Loop actual de WordPress por este loop hackeado:

<?php
if (have_posts()) :
     while (have_posts()) : the_post(); ?>
         $expirationtime = get_post_custom_values('expiration');
         if (is_array($expirationtime)) {
             $expirestring = implode($expirationtime);
         }

         $secondsbetween = strtotime($expirestring)-time();
         if ( $secondsbetween > 0 ) {
             // For exemple...
             the_title();
             the_excerpt();
         }
     endwhile;
endif;
?>

2. Crear un campo personalizado

Ahora ya solo necesitas crear un campo personalizado para que el post expire en una fecha/hora determinadas. Escribe expiration como nombre y la fecha/hora (formato: mm/dd/yyyy 00:00:00) como valor.

La entrada no se mostrará después de ese momento. ¡Experimenta y disfruta!

Original: WpRecipes.com

Comentarios
  1. 23r9i0

    Hola!!
    Muy bueno, aun no se cuando usarlo pero en un futuro me puede servir.
    Saludos

    Escrito el25/01/2009
  2. Hola 23r9i0. Supongo que no es algo muy usual ni necesario en blogs normales, pero alguna gente que usa WordPress como CMS me preguntó a veces, por eso al verlo en WpRecipes, me pareció interesante publicarlo en español. Es la típica cosa rara que a veces necesitamos.

    Escrito el26/01/2009
  3. Hola! Es la primera vez que visito este blog (no lo conocía) y tengo que decir que me ha encantado. Por cierto, gracias por el hack de expiración de los posts, lo pondré en práctica.

    Un saludo ;)

    Escrito el27/01/2009
  4. Bienvenido Iván, me alegra que te sirva el hack y me alegra aún más que te haya gustado el blog :D

    Escrito el27/01/2009
  5. valver

    Gracias, gracias, graciaaaas!!!

    Escrito el20/02/2009
  6. Angeles… una pregunta:
    El codigo que posteaste para cambiar el loop.
    ¿En cual de las archivos del tema debe cambiarse?

    Encontré en más de un archivo .PHP la mención a
    if (have_posts)

    Gracias!!!

    Escrito el17/07/2009
  7. Angeles!!!

    Muchas gracias por tu respuesta!!!!

    El plugin que me referenciaste me ha funcionado perfecto.
    El unico detalle es que independiente de mi zona horaria y formato de hora, el plugin funciona con referncia a otra hora y el expirador de post queda seteado con -3hrs que la que le indico.
    Un detalle menor.

    Gracias!!!

    Escrito el17/07/2009
  8. El código que muestras presenta un pequeño error, posee un cierre “?>” en la tercera linea.
    el cual debe removerse para no tener problemas.

    Bueno, espero que su blog siga creciendo, un Saludo

    Escrito el12/03/2010
  9. Los posts tienen tres estados: publicado, pendiente de moderación y borrador. Pregunto, ¿habrá forma de que exista un cuarto nivel para enviar los posts antiguos a un lugar aparte pero que se puedan ver?

    Escrito el01/12/2010
  10. Penelope

    Creo que lo que German busca es que psado un tiempo x el post pase a estado “caducado” y deje de ser visible en el frontend, igual que si se pusiera manualmente en estado “borrador” pero con otro nombre poara que sea identificable.

    Para tener mas estados hay un plugin llamado flow edit, pero aun no sé como hacer para que el estado cambie automaticamente pasado un tiempo.

    Escrito el25/08/2011
  11. Me ha caido de perlas mil gracias amigos!!

    Escrito el09/11/2011
  12. Si, pero si mi “loop” contiene mas cosas importantes e imprescindibles para mi, no voy a sustituir el código de mi “loop” por estas líneas, me cargaría todo.

    ¿Cómo se puede hacer que las entradas expiren y dejen de verse solo en la categoría “INICIO” y la categoría “NOTICIAS”, y que a la vez sigan existiendo en otras categorías a modo de “histórico”?

    Escrito el15/12/2011
  13. ¿Podéis explicar en que consiste lo de crear un campo?, ¿dónde?, ¿cómo?

    Escrito el15/12/2011
  14. David

    Existe la posibilidad de hacerlo para páginas también?
    Gracias

    Escrito el09/03/2012
  15. Carlos

    Y para blogger como le aplico?

    Escrito el18/07/2013

DEJA TU COMENTARIO