我已经从我的 Tumblr 主题中删除了所有以帖子为中心的标记,而是使用 ajax 来获取数据。到目前为止,一切都很好。现在我想为每个帖子添加一个赞按钮,但我似乎找不到任何关于如何做到这一点的文档(不求助于他们的 api,这需要 oauth 才能工作)。
当您使用 ajax 获取帖子并且您宁愿不使用 oauth 使用完整的 api 时,是否无法包含类似按钮?
我已经从我的 Tumblr 主题中删除了所有以帖子为中心的标记,而是使用 ajax 来获取数据。到目前为止,一切都很好。现在我想为每个帖子添加一个赞按钮,但我似乎找不到任何关于如何做到这一点的文档(不求助于他们的 api,这需要 oauth 才能工作)。
当您使用 ajax 获取帖子并且您宁愿不使用 oauth 使用完整的 api 时,是否无法包含类似按钮?
Tumblr 对单个帖子的“点赞按钮”的新实现使用一个<iframe>
元素来发挥作用。此 iframe 的 URL 只能通过您的主题代码获得。
例如:
{Block:Posts}
<div class="like-button">{LikeButton}{/div>
{/Block:Posts}
为{LikeButton}
将呈现的内容如下所示:
<iframe id="like_iframe_84714330251" src="http://assets.tumblr.com/assets/html/like_iframe.html?_v=fa292ab73ee80893ffdf1edfabaa185a#name=blog-name-&post_id=84814329251&rk=reKNyFfj" scrolling="no" width="20" height="20" frameborder="0" class="like_toggle" allowtransparency="true"></iframe>
似乎没有任何方法可以在不包括{LikeButton}
内部的情况下获得此{Block:Posts}
对于使用 ajax,您可以在页面上包含一个隐藏元素,该元素加载此信息并在使用 ajax 加载每个帖子页面时将其解析出来。
因此,如果在您的主题中包含以下内容:
<div id="posts-info" style="display: none;">
{Block:Posts}
<div class="post-info" data-postid="{PostID}">{LikeButton}</div>
{/Block:Posts}
</div>
当您使用 AJAX 加载帖子时,您还必须加载 Tumblr 的正确页面(在主题中使用此代码)。
然后,您可以通过将帖子 ID 与您使用 AJAX 获取的帖子匹配并插入该<ifame>
代码来解析此信息。
这是一个非常全面的解决方案,但它应该可以工作。