Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
imagen destacada

Establecer la primera imagen de un post como destacada

Cuando escribimos una entrada o página en WordPress, por defecto nos deja establecer una imagen destacada o thumbnail:

featured-image

Esta imagen destacada suele usarse por ejemplo para listados o para indicar en las etiquetas open graph qué imagen usar para compartir contenido en redes sociales.

En algunas ocasiones nos podemos olvidar de completar este campo, o puede que tengamos entradas tan antiguas que nos da pereza ahora revisar una por una e ir estableciendo la imagen destacada para cada una de ellas.

En este caso puede interesarnos recuperar la primera imagen del post en el caso de que no hayamos establecido imagen destacada, y que haga las funciones de la misma. Para esto utilizaremos la función get_children(). Esta función devuelve imágenes, revisiones o sub-páginas asociadas a un post.

Por ejemplo en el template category.php mostramos un listado de noticias. Preguntaremos si tiene imagen desatacada asociada, y en caso contrario buscaremos una imagen entre las asociadas al post:

Con este código mostraremos en el listado una de las imágenes asociadas al post, pero no necesariamente será la primera en aparecer dentro del contenido. Si hemos subido varias imágenes al post lo que mostraremos por defecto será la primera imagen que se asoció al post. Podemos pasar el parámetro order dentro de $args con el valor ASC o DESC para mostrar la primera o última imagen respectivamente que se asoció al post.

Si lo que queremos es mostrar la primera imagen que aparece en el post, tendremos que tirar de expresiones regulares, buscando directamente en el contenido la etiqueta img:

Estos dos snippets lo que hacen es mostrar una imagen destacada sacada el contenido o de las imágenes asociadas a un post, pero si lo que realmente queremos es dejar los listados como los tenemos y hacer una función para que establezca una imagen destacada sacada de las imágenes asociadas al post, lo que tendremos que poner en nuestro functions.php es lo siguiente:

Este código bastaría con ejecutarlo una sola vez, ya que va a recorrer todos nuestros posts y les va a asignar una imagen destacada de entre las que tiene asociadas al post.

Puede que también te interese

Mejora la puntuación de Google PageSpeed Insights: Eliminar el CSS que bloquea la visualización del contenido de la mitad superior de la página
Mejora la puntuación de Google PageSpeed Insights: Eliminar el CSS que bloquea la visualización del contenido de la mitad superior de la página
1. Optimizar imágenes 2. Minificar CSS y JS 3. Especificar caché de navegador 4. Habilita la compresión 5. Reducir el tiempo de respuesta del servidor…
Eliminar código innecesario del wp_head
Eliminar código innecesario del wp_head
Por defecto WordPress incluye una serie de meta-tags en la cabecera de nuestro sitio a través de la función wp_head(). La mayoría de estas etiquetas…
Haz que la imagen destacada sea obligatoria
Haz que la imagen destacada sea obligatoria
Probablemente en alguna ocasión por un descuido u olvido, o quizá por las prisas, no hayas establecido una imagen destacada en un post. Y si…
Creando un plugin para WordPress parte 3: Escribiendo el plugin
Creando un plugin para WordPress parte 3: Escribiendo el plugin
1. Creando un plugin para WordPress: Planificación y planteamiento 2. Creando un plugin para WordPress: Estilo del Código 3. Creando un plugin para WordPress: Escribiendo…