Cómo enlazar una imagen en el pie

Email this to someoneShare on FacebookShare on Google+Share on LinkedInTweet about this on Twitter

Parece que en la última versión de WordPress la 3.4 se añadirá una interesante mejora pedida desde hace tiempo por muchos webmasters y redactores. A pesar de que a priori parezca una mejora más, el hecho de facilitar la incorporación de los creditos, copyright o nombre y enlace en las fotografía que añadimos en nuestros artículos, puede evitar en gran medida los malos entendidos y reclamaciones de los autores de las imagenes.

Actualmente la mayoría de diseños ya ofrecen esta opción, también conocida como captions, por contra de lo que se pueda pensar los campos de título, texto alternativo o leyenda de la imagen no están preparados para insertar enlaces en el pie de las imagenes.

Si no quieres esperar a la salida de la nueva versión de WordPess, tienes varias opciones para enlazar una imagen en el pie:

Plugin

El plugin que se encarga de insertar los enlaces en las leyendas de pie de foto se llama Links in captions. Para hacerlo funcionar sólo hay que activarlo y cada vez que añadamos una imagen a la cual queremos poner su referencia, utilizar en el campo leyenda de pie de foto al subir una imagen, el siguiente código:

{link url="http://www.dominio-a-enlazar.com" target="_blank"
rel="nofollow"}Referencia al autor.{/link}

imagen-enlace-pie

Código

Por otro lado, otra solución es añadir el siguiente código en el fichero functions.php de nuestro theme. Esto lo que hace es ofrecerte un nuevo campo cada vez que agregamos una nueva imagen en la que podemos poner la URL o referencia de la misma.

Añadir un nuevo campo de URL de origen de la imagen

add_filter("attachment_fields_to_edit", "add_image_source_url", 10, 2);
function add_image_source_url($form_fields, $post) {
	$form_fields["source_url"] = array(
		"label" => __("URL de origen"),
		"input" => "text",
		"value" => get_post_meta($post->ID,
                "source_url", true),
                "helps" => __("URL fuente de la imagen"),
	);
 	return $form_fields;
}
add_filter("attachment_fields_to_save",
           "save_image_source_url", 10 , 2);
function save_image_source_url($post, $attachment) {
	if (isset($attachment['source_url']))
		update_post_meta($post['ID'], 'source_url',
trim($attachment['source_url']));
	return $post;
}

Añadir el campo anterior al pie de foto

add_filter('img_caption_shortcode',
               'caption_shortcode_with_credits', 10, 3);
function caption_shortcode_with_credits($empty, $attr, $content) {
	extract(shortcode_atts(array(
		'id'	=> '',
		'align'	=> 'alignnone',
		'width'	=> '',
		'caption' => ''
	), $attr));
	// Extract attachment $post->ID
	preg_match('/d+/', $id, $att_id);
	if (is_numeric($att_id[0]) && $source_url =
                      get_post_meta($att_id[0], 'source_url', true)) {
		if (!strstr($source_url, 'http://'))
			$source_url = 'http://' . $source_url;
		$parts = parse_url($source_url);
		$caption .= ' ('. __('via') .' <a href="'.
                    $source_url .'">'. $parts['host'] .'</a>)';
	}
	if (1 > (int) $width || empty($caption))
		return $content;
	if ($id)
		$id = 'id="' . esc_attr($id) . '" ';
	return '<div ' . $id . 'class="wp-caption ' .
          esc_attr($align) . '" style="width: ' .
           (10 + (int) $width) . 'px">'
		. do_shortcode($content) .
          '<p>' . $caption . '</p></div>';
}

Sé la primera persona en comentar

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

De conformidad con lo establecido en la LOPD, Adpv Advertising Provider S.L. garantiza la adopción de las medidas necesarias para asegurar el tratamiento confidencial de los datos de carácter personal. Así mismo le informamos de la inclusión de sus datos en un fichero con la finalidad de mantener su relación negocial o contractual con Adpv Advertising Provider S.L. y de la posibilidad de ejercer los derechos de acceso, rectificación, cancelación y oposición en la siguiente dirección: Ercilla, 26, 1Dcha., 48011, Bilbao, Bizkaia. Privacidad.