В WordPress можно к изображениям добавлять текстовые подписи. Но эта подпись может быть только текстовой, никакие ссылки в них использовать нельзя – если вы попробуете это сделать, то система их просто вырежет, сделав обыкновенным текстом.
Однако если подпись является не просто парой слов, а пояснением к изображению, его описанием, то резонно сделать так, чтобы в текст подписи можно было вставить ссылку.
В поисках решения этой задачи я вышел на два решения, схожих по действию – отдельный код, и плагин.
Начну с кода, найденного тут. Идея такова – при отображении страницы автоматически заменять текст в подписи, выделенный определенными символами, на ссылку и анкор. Вот так:
текст до ссылки ##http://url.com##анкор## текст после ссылки
Сделать это можно с помощью специальной функции, вставленной в файл functions.php:
add_shortcode('wp_caption', 'LinkInCaption');
add_shortcode('caption', 'LinkInCaption');
function LinkInCaption($attr, $content = null) {
$output = apply_filters('img_caption_shortcode', '', $attr, $content);
if ( $output != '' ) return $output;
extract(shortcode_atts(array(
'id'=> '',
'align' => 'alignnone',
'width' => '',
'caption' => ''), $attr));
if ( 1 > (int) $width || empty($caption) )
return $content;
$text=explode('##',$caption);
$limit = 1+3*(ceil(count($text)/3)-1);
$text=explode('##',$caption,$limit);
if( count($text) >= 3 ) :
$outtext=$text[0];
for($i=1; $i<count($text); $i=$i+3):
if(strpos($text[$i],'http://')===false) {
$outtext = $outtext.$text[$i+1].$text[$i+2]; }
else { $outtext = $outtext.''.$text[$i+1].''.$text[$i+2]; }
endfor;
$caption = $outtext;
endif;
if ( $id ) $id = 'id="' . esc_attr($id) . '" ';
return '<div>'
. do_shortcode( $content ) . '<p class="wp-caption-text">'
. $caption . '</p></div>';
} Вы можете использовать такой способ вставки ссылок в текст подписи, используя стандартный шорткод caption.
Вторым способом является плагин Links in Captions с аналогичным принципом работы, но с более широкими возможностями – можно добавлять не только ссылку с анкором, но и прописывать в ссылке rel, target и title.
Пример простого использования:
текст до ссылки {link url="http://www.example.com"}анкор{/link} текст после ссылки Пример более сложного использования:
текст до ссылки {link url="http://www.example.com" title="Текст подсказки" target="_blank" rel="nofollow"}анкор{/link} текст после ссылки Скачать Links in Captions







