WordPress: imagenes de la galería de un post al azar

Bueno bueno, otro tiempo sin escribir… y ahora decidido a compartir otro código con ustedes. Esta vez les paso una función para que puedan agregarla en los loops y que la misma seleccionará una imagen de la galería de imágenes del post y la mostrará, o si especifican un campo personalizado, que muestre dicha imagen. Vamos al código y dejemos las charlas de más.

1. Crear el archivo functions.php o abrirlo (si ya existe) y pegar el siguiente código al final del mismo:


function the_gallery($width,$height) {
global $post;
# Obtiene la URL de la imagen segun campo personalizado
$custom_field_value = get_post_meta($post->ID, 'Image', true);
# Obtiene las imágenes de la galería
$attachments = get_children( array('post_parent' => $post->ID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'orderby' => 'rand', 'numberposts' => 1) );
# Si hay imágenes en la galería
if ($attachments == true) {
  foreach($attachments as $id => $attachment) {
    $img = wp_get_attachment_image_src($id, 'full');
    $img_url = parse_url($img[0], PHP_URL_PATH);
    print '<a href="'.get_permalink($post).'" title="'.$post->post_title.'"><img src="'.get_template_directory_uri().'/thumb.php?src='.$img_url.'&amp;w='.$width.'&amp;h='.$height.'&amp;zc=1&amp;q=95" alt="'.$post->post_title.'" /></a>';
  }
}
# Si se especificó el campo personalizado
elseif ($custom_field_value == true) {
  $tweak = str_replace('/', '%2F', $custom_field_value);
  $img_url = str_replace(':', '%3A', $tweak);
  print '<a href="'.get_permalink($post).'" title="'.$post->post_title.'"><img src="'.get_template_directory_uri().'/thumb.php?src='.$img_url.'&amp;w='.$width.'&amp;h='.$height.'&amp;zc=1&amp;q=95" alt="'.$post->post_title.'" /></a>';
}
}

Y bien, ahora pueden utilizar la funcion the_photo(ancho, alto) para mostrar una imagen al azar de la galería o sino una que especifiquen ustedes desde el campo personalizado.

Espero sea útil y puedan implementarlo facilmente.

Deja tus comentarios!