jueves, 1 de marzo de 2012

Hoy en AyudaWordPress.com

Hoy en AyudaWordPress.com

Link to Ayuda WordPress

Obtener y mostrar imágenes del contenido

Posted: 01 Mar 2012 04:05 PM PST

Desde hace varias versiones que WordPress puede mostrar en tu tema imágenes destacadas pero ¿qué pasa si no usas ese sistema?, o si simplemente tu tema no soporta imágenes destacadas.

La solución sería un código que revise tu contenido y, si encuentra una imagen, la muestre en tu sitio.

Sería una cosa así:

// Empieza el Loop <?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?> <?php // Definimos el contenido de la entrada a una variable $szPostContent = $post->post_content; // Defininimos el patrón a buscar $szSearchPattern = '~<img [^\>]*\ />~'; // Ejecutamos preg_match_all para obtener todas las imágenes y guardar los resultados en $aPics preg_match_all( $szSearchPattern, $szPostContent, $aPics ); // Contamos los resultados  $iNumberOfPics = count($aPics[0]); // Comprobación de si hay al menos 1 imagen if ( $iNumberOfPics > 0 ) {      // Ahora hacemos lo que sea con las imágenes      // En este ejemplo se muestran las imágenes for ( $i=0; $i < $iNumberOfPics ; $i++ ) {           echo $aPics[0][$i];      }; };  endwhile; endif; ?> // ...termina el loop, etc

En el código anterior, una vez mostramos las imágenes es bastante probable que quieras también mostrar el contenido ¿no?. Vale, pues el problema es que si usamos la función the_content(); las imágenes se volverán a mostrar. Para resolver esta puñetita solo hay que hacer un rodeo para quitar las imágenes, y mostrar solo el resto del contenido:

// Esta vez remplazamos/quitamos las imágenes del contenido $szDescription = preg_replace( $szSearchPattern, '' , $szPostContent); // Aplicamos filtros para que se muestre bien el contenido $szDescription = apply_filters('the_content', $szDescription); // Mostramos el contenido echo $szDescription;

¡Y ya está!

Esta virguería la creó Matt Varone.

No hay comentarios:

Publicar un comentario

Seguidores

Archivo del blog