В 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