Заголовок Wordpress как название Fancybox - PullRequest
2 голосов
/ 29 марта 2012

У нас есть клиент, который использует редактор wysiwyg для добавления нескольких фотографий и разных фрагментов к пользовательскому типу записи.

Они включают заголовок с использованием функции заголовка Wordpress Image.

Как мы сможем (эффективно) использовать опцию Fancybox title для этого?

Вот структура:

<div id="attachment_180" class="wp-caption">
    <a href="image.jpg" rel="performance">
        <img class="size-full" src="someimagethumb.jpg">
    </a>
    <p class="wp-caption-text">The Image Caption</p>
</div>

Ответы [ 3 ]

2 голосов
/ 29 марта 2012

Я думаю, вам может понадобиться что-то вроде этого

$('div.wp-caption').each(function(){
    var caption = $(this).find('p.wp-caption-text').text();
    $(this).find('img').attr('title',caption);
    $(this).find('p.wp-caption-text').remove();    
});​

Объяснение:

Для каждой фотографии div (так как на странице их может быть много), выполните следующие действия:

  1. захватите текст заголовка как вставленный
  2. добавьте текст к атрибуту title в элементе img
  3. снимите заголовокp элемент

Пример: http://jsfiddle.net/ZVu9e/

1 голос
/ 16 марта 2015

Я использовал хук в файле functions.php вместо JQuery:

function add_title_attachment_link($link, $id = null) {
    $id = intval( $id );
    $_post = get_post( $id );
    $post_title = esc_attr( $_post->post_excerpt );
    return str_replace('<a href', '<a title="'. $post_title .'" href', $link);
}
add_filter('wp_get_attachment_link', 'add_title_attachment_link', 10, 2);

Это вернет заголовок из вложения и добавит его в тег <a> в качестве заголовка для большинства плагинов лайтбокса JQuery.

Например, в Fancybox:

$(".fancybox").fancybox({
    helpers : {
        title : {
            type : 'over'
        }
    }
});

Подпись теперь появится в лайтбоксе.

0 голосов
/ 29 марта 2012

Возьмите его, затем пройдите в fancybox.

var txt = $( '.wp-caption-text' ).text();
//do fancybox with txt passed to the title property
...