2012-03-29 61 views
2

我们有一个客户端使用wysiwyg编辑器将多张照片和不同位添加到自定义帖子类型。作为Fancybox标题的Wordpress标题

它们包含使用Wordpress图像标题功能的标题。

我们如何能够(有效地)使用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> 
+0

这将是非常简单的使用fancybox v2.x(你需要将其硬编码到WordPress)。这是如何http://stackoverflow.com/a/9611664/1055987 – JFK 2012-03-29 19:03:07

回答

2

我想你可能想是这样的

$('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();  
});​ 

说明:

对于每个PIC div(因为可能有很多页面上),请执行下列操作

  1. 从插入的文字中截取文字
  2. 文本在img元件
  3. 添加到title属性中删除字幕p元件

实施例:http://jsfiddle.net/ZVu9e/

+0

我希望我不会像使用.find一样表现糟糕,但我不认为有任何其他方式... – 2012-03-29 16:56:47

0

抓住它,然后传递到的fancybox。

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

我结束了在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); 

Thi s将从附件中返回标题,并将其添加到<a>标记中作为大多数JQuery lightbox插件的标题。

例如,在的fancybox:

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

的标题将现在显示在灯箱。