Tumblr テーマから投稿中心のマークアップをすべて削除し、代わりに ajax を使用してデータを取得しています。ここまでは順調ですね。今、各投稿にいいねボタンを追加したいのですが、これを行う方法に関するドキュメントが見つからないようです(oauthが必要なAPIに頼らなければ)。
ajax を使用して投稿をフェッチし、oauth で完全な API を使用しない場合、いいね! ボタンを含める方法はありませんか?
Tumblr テーマから投稿中心のマークアップをすべて削除し、代わりに ajax を使用してデータを取得しています。ここまでは順調ですね。今、各投稿にいいねボタンを追加したいのですが、これを行う方法に関するドキュメントが見つからないようです(oauthが必要なAPIに頼らなければ)。
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 の正しいページも読み込む必要があります (このコードはテーマに含まれています)。
次に、AJAX で取得した投稿に投稿 ID を一致させ、その<ifame>
コードを挿入することで、この情報を解析できます。
これは本当に回りくどい解決策ですが、うまくいくはずです。