Una vez más aquí. Hoy vengo a «actualizar» un post que publiqué en esta página hace ya un tiempo y que se titulaba «Post antiguo, muestra un aviso en tus artículos de Wordpress«. Gracias a este artículo los usuarios podíamos mostrar un aviso al usuario de que el post que está visitando puede estar un poco desactualizado. Bueno, pues un usuario me recordó algo que ya sabía, y es que si sigues las instrucciones que allí daba, cuando actualizases el tema, perderás los cambios. Pues para solventar este problema, en este artículo vamos a ver cómo crear una función para avisar de la antigüedad de un post en Wordpress, y así olvidarnos de tener que volver a introducir el código en nuestro tema cuando lo actualicemos.
El caso, es que para que esto funcione correctamente, vamos a utilizar un child theme o tema hijo de nuestro tema principal de Wordpress. En este tema hijo encontraremos un archivo functions.php, y ahí será donde podremos incluir la función para avisar de la antigüedad de un post al usuario que visita nuestra web.
Función para avisar de la antigüedad de un post
Dentro del archivo functions.php de nuestro tema hijo, tan solo tendremos que añadir al final el siguiente código:
function aviso_post_viejo($contentenido) { if (is_single()) { $fecha = get_the_time('U'); $fecha_en_segundos = ((time() - $fecha)); $dias = ($fecha_en_segundos / 86400); if ($dias > 730) { $aviso= '<div class="aviso-viejo">AVISO: Esta entrada tiene más de dos años desde su publicación. Es posible que el contenido esté desactualizado.</div>'; } $contenido_personalizado = $aviso; $contenido_personalizado .= $contentenido; return $contenido_personalizado; } else { return $contentenido; } } add_filter('the_content', 'aviso_post_viejo');
La función que acabamos de ver, mostrará el aviso en los posts, no en las páginas ni en los resultados de búsqueda. Además veremos que solo se muestra si la fecha de publicación es de hace más de dos años desde la fecha actual del sistema. El aviso se colocará de forma automática justo antes del contenido del artículo.
Un poco de CSS
Este código mostrará un mensaje sin ningún estilo, pero para hacer más vistoso este aviso, podemos utilizar en el archivo style.css de nuestro tema hijo algo de código CSS como el siguiente.
/*Aviso viejo*/ .aviso-viejo{ border:1px solid red; padding:2%; font-weight:bold; background-color:#f0f0f0; text-align:center; }
El resultado final será como el que se puede ver funcionando actualmente en esta web, que es algo como lo que se puede ver en la siguiente imagen.

Y con este sencillo código, avisaremos a los visitantes a nuestra web de que el archivo que está consultando fue publicado hace más de dos años, por lo que puede estar un poco desactualizado. Y esta información es siempre de agradecer.
Espero que con esto el usuario que me hizo saber del problema del antiguo post, pueda actualizar el tema de su página Wordpress, sin miedo a perder este cambio tan útil.