パーマリンクページに移動せずに各投稿に「いいね」ボタンを作成する方法は? つまり、ホームページでも、このページにハートのようなものを表示するには、どのスクリプトを使用できますか? (写真にマウスオーバーすると、投稿にいいねのハートがあります)
2 に答える
これに関するチュートリアルをhttp://like-button.tumblr.comで作成しました。これを実装する際に人々が抱えていた問題を解消し、単純なカット アンド ペーストにします。
Like 機能を追加するには、次の URL を使用して、それをsrc
invisible の属性として設定し<iframe>
ます。
http://www.tumblr.com/<command>/<oauthId>?id=<postId>
<command>
:like
またはunlike
<oauthId>
: の最後の 8 文字{ReblogURL}
<postId>
:{PostID}
例:
http://www.tumblr.com/like/fGKvAJgQ?id=16664837215
次のコード ブロックをテーマの の直前にカット アンド ペーストします</head>
。これにより、デフォルトのTumblrの灰色のハートのように見える各投稿にいいねボタンが表示されます. カーソルを合わせたり、クリックしたりすると赤くなります。もう一度クリックすると、再びグレーに変わり、Like が削除されます。
コード:
<style>
.my-like {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAARCAYAAAA/mJfHAAABH0lEQVQ4y62T30vCUBiGv/9YuhBLkCA08FdogRFFYFEUhhZNCCQoSESiIOii68pl5qV6s8Eb7+SMHXNs6S7ejZ3zvA+ccT4BICofvS88dJ7w8vqG8WQC754K17lPjrx3z3l8D4YoVaqIrWbcJNbzaHefNZjfXPdy5b0jsO/IRqMxUpmSBnhz2bx1QL79GPbpEePmzhdSyW8fBDL0SK68HwiGCT2S3NiKREaPzP7QRRNPZSHpwm4kMnqkYbQikdEjZv8HK2ubS4nY75mD6WU8qzeXkrHvToBlWSjuHC4kYo99V8bwBnM0/iMiz542myq2bSPskcmR/zPos7lvP8Lv/nGd+/N6c2Xq2KcXhiY6qV1rxwotU3n/NHF8fgW+g9hfsHJlJUYljcgAAAAASUVORK5CYII=) !important;
height:17px;
width:19px;
cursor:pointer;
display:inline-block;
vertical-align:top;
}
.my-liked, .my-like:hover {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAARCAYAAAA/mJfHAAABSklEQVQ4y2P4//8/Awy/O3fu/905c/4/2779/69Pn/4jy8Hwz/fv/z/buvX/vfnz/7+/eBFFDZj4cOXK/8O+Pv+36+rA8W4zs/8Ply1DUXx/4cL/u0yMUdQdCQ76/+nWLbA6hq+PH//fbW6OogAZ3+zvByu81t6OU80ea6v/P16//s9wqboKpyIYPhYeTlDN1abG/wz7HR0JKiQGH3Bz+8+ww0CfKobtMjb6z0ANg+CGgQKPKt50dfnPcL6wkCqGXaoo/8/w5tgxyg3T0wUnYHBiPJuZSZFhF8pK/8NzACjrgKKWHINAOef3168Iw0D429OnGFmKEAZlJVDKR8mbMAyy4XRqClEGnc3J+f/nxw/MjI6OQflxh6EBzvR0Z9o0rCUKVsNA+MuD+/9PJiSgGHQmPf0/KDhw6cFpGAy/OnAAbOibEyf+E1ILAFBjDrchm7KrAAAAAElFTkSuQmCC) !important;
height:17px;
width:19px;
cursor:pointer;
display:inline-block;
vertical-align:top;
}
</style>
<script>
window.onload = function () {
document.body.insertAdjacentHTML( 'beforeEnd', '<iframe id="my-like-frame" style="display:none;"></iframe>' );
document.addEventListener( 'click', function ( event ) {
var myLike = event.target;
if( myLike.className.indexOf( 'my-like' ) > -1 ) {
var frame = document.getElementById( 'my-like-frame' ),
liked = ( myLike.className == 'my-liked' ),
command = liked ? 'unlike' : 'like',
reblog = myLike.getAttribute( 'data-reblog' ),
id = myLike.getAttribute( 'data-id' ),
oauth = reblog.slice( -8 );
frame.src = 'http://www.tumblr.com/' + command + '/' + oauth + '?id=' + id;
liked ? myLike.className = 'my-like' : myLike.className = 'my-liked';
};
}, false );
};
</script>
次に、次のボタン コードをカット アンド ペーストして、好きなボタンを配置するテーマに貼り付けます (これは{block:Posts}
ブロック内にある必要があります)。
コード:
<div class="my-like" data-reblog="{ReblogURL}" data-id="{PostID}"></div>
ページから、彼らはjavascriptを使用しています:
$('a.like-link').click(function() {
var post = $(this).closest('.post');
var id = post.attr('id');
var oath = post.attr('rel').slice(-8);
var like = 'http://www.tumblr.com/like/'+oath+'?id='+id;
$('#likeit').attr('src', like);
}
投稿post
の HTML 要素だけです。次にid
、その投稿の と、投稿を高く評価したりリブログしたりするために必要な 8 文字のコードを取得するだけです。これらすべてを取得し、URL にスローして、ページ上の iFrame のソースに設定します ( #likeit
) 。