Enlace en el pie de foto

El otro día, en una de las clases de Domina WordPress, me preguntaba un alumno si se podría insertar enlaces en la leyenda del pié de foto que insertamos en WordPress.

La idea era en la mayoría de las ocasiones dar la atribución al sitio original de la imagen, lo cual es muy buena idea. Y bien, pues como no tengo todas las respuestas me puse a buscar y nada, que parece que en WP Tavern me han escuchado y nos ofrecen varias maneras de insertar enlaces en los pies de foto, a saber … 

Índice de contenidos

1. Código

Añadiendo los siguientes códigos al fichero functions.php de tu tema activo obtienes un nuevo campo cada vez que subes una imagen, en el que poner la URL del sitio de donde se creó la misma. Lo bueno es que el enlace solo se aplica si usas un pie de foto:

Primero añadidos 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" => __("Añade la URL donde encontraste 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;
}

Luego hacemos que ese campo se añada 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 class="wp-caption-text">' . $caption . '</p></div>';
}

Lo mejor es que funciona de coña.

2. Plugin

Como casi siempre, resulta que también hay un plugin que nos permite esta funcionalidad. En este caso se llama Links in captions y, como su propio nombre indica, permite insertar enlaces en las leyendas de pie de foto.

Solo hay que instalarlo, activarlo, y luego, cuando añadas una leyenda de pie de foto, en vez de texto plano tendrás que añadir algo como este ejemplo:

{link url="http://www.dominio.com" target="_blank" rel="nofollow"}Este es el texto enlazado{/link}

Sencillito también ¿verdad?

Hale, pues tu eliges el modo, personalmente me gusta más el plugin, para que lo voy a negar.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(3 votos, promedio: 5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

8 comentarios en “Enlace en el pie de foto”

  1. Ups…!! Pegué el código y…

    Parse error: syntax error, unexpected '<' in /home/hoempler/public_html/wp-content/themes/lightword/functions.php on line 493

    Obviamente no tengo idea de lo que significa y mi blog está muerto =(

    1. Borra de momento lo que has pegado para que vuelva a la vida. Luego prueba en otro sitio el código, no sea que lo hayas puesto donde no se podía aunque el mensaje te dice que sobra un <

  2. Pingback: Cómo incorporar la atribución en el pie de una foto | La Bitácora del Tigre

  3. Y ya puestos a pedir: ¿hay alguna forma de incluir en el pie de foto etiquetas HTML (negrita, cursiva, etc)? Me refiero en concreto a poner en negrita o cursiva una palabra o varias, no todo el pie de foto.
    Un saludo.

  4. Pingback: Enlaces en el pié de foto en WordPress 3.4 | Ayuda WordPress

  5. Pingback: Enlaces en la leyenda (caption) de imágenes en WordPress 3.4 | Ayuda WordPress

  6. Pingback: Enlaces en la leyenda (caption) de imágenes en WordPress 3.4

Deja un comentario

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

 

Ir arriba Ir al contenido