Как разрешить ссылки в тексте подписи к изображениям — отдельный код и плагин Links in Captions

Как разрешить ссылки в тексте подписи к изображениям - отдельный код и плагин Links in Captions | n-wp.ru
По-умолчанию WordPress не умеет вставлять в подпись к изображению ссылки. Привожу два способа, с помощью которых можно вставлять ссылки в текст подписи к изображению - код и плагин.
👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

В WordPress можно к изображениям добавлять текстовые подписи. Но эта подпись может быть только текстовой, никакие ссылки в них использовать нельзя — если вы попробуете это сделать, то система их просто вырежет, сделав обыкновенным текстом.

Как разрешить ссылки в тексте подписи к изображениям - отдельный код и плагин Links in Captions

Однако если подпись является не просто парой слов, а пояснением к изображению, его описанием, то резонно сделать так, чтобы в текст подписи можно было вставить ссылку.

В поисках решения этой задачи я вышел на два решения, схожих по действию — отдельный код, и плагин.

Начну с кода, найденного тут. Идея такова — при отображении страницы автоматически заменять текст в подписи, выделенный определенными символами, на ссылку и анкор. Вот так:

текст до ссылки ##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
Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий