在Tumblr上的{block:Photos}内渲染{Caption}

时间:2014-04-14 11:04:12

标签: javascript html css tumblr

tumblr似乎存在一些问题,因为如果它位于{Caption}标记内,则无法呈现{block:Photos}标记。问题是我的主题的工作方式要求以这种方式完成。

{block:Photoset}
    <div class="object photo">
        {block:Photos}
            <a href="{PhotoURL-HighRes}" class="fancybox" rel="{PostID}" title="{Caption}"><img src="{PhotoURL-HighRes}" /></a>
        {/block:Photos}
    </div>
{/block:Photoset}

原因是我正在使用FancyBox为集合中的每张照片添加标题,您需要为title属性添加标题。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

The example in their docs正是如此,{block:Photos}中的{Caption}。在该块中,{Caption}指的是单张照片的标题。

我猜你想要照片集的标题,而不是单张照片。在您的情况下,标题可能为空,所以您没有看到任何内容。

我不认为它可以通过模板完成,所以这里是使用jQuery的快速修复:

$('.photoset[data-caption]').each(function () {//select photosets that have a caption
  var caption = $(this).data('caption');//get stored caption
  $(this).find('.fancybox')//find link that needs the caption
    .attr( 'title', caption );//add caption to link
});

这是模板:

{block:Photoset}
  <div class="object photoset" {block:Caption}data-caption="{PlaintextCaption}"{/block:Caption}> <!-- Note the > after the block caption -->
    {block:Photos}
      <a href="{PhotoURL-HighRes}" class="fancybox" rel="{PostID}"><img src="{PhotoURL-HighRes}" /></a>
    {/block:Photos}
  </div>
{/block:Photoset}

答案 1 :(得分:0)

或者您可以将 {block:caption} {caption} {/ block:caption} 放在 {/ block:photos} 下面,而不是在其中,有同样的问题,这对我有用。