WordPress实现分享计数

分享总体来说是一个重要的功能,今天带来的教程是如何在WordPress中实现分享计数,具体效果可以查看文章结尾处,点击分享即可刷新次数。(顺便来个VIP内容测试)

将下列代码加入functions.php中

function lb_tweet(){
	$min_count = 1;
	$count = ( $count = get_post_meta( $_POST['post_id'], 'post_tweets', true ) ) ? $count : $min_count;
	if( get_post_meta( $_POST['post_id'], 'post_tweets_latest_ip', true ) != $_SERVER['REMOTE_ADDR'] ) {
		$count++;
		update_post_meta( $_POST['post_id'], 'post_tweets', $count );
		update_post_meta( $_POST['post_id'], 'post_tweets_latest_ip', $_SERVER['REMOTE_ADDR'] );
	}
	echo $count;
	die();
}
add_action('wp_ajax_tweet', 'lb_tweet');
add_action('wp_ajax_nopriv_tweet', 'lb_tweet');

这里采用的是ajax数据刷新,jQuery代码如下

jQuery( function( $ ){
	$('.lb-tweet').click( function(){ 
		var tweetbutton = $(this),
		    post_id = tweetbutton.attr( 'data-id' ); 
 
		$.ajax({ 
			type:'POST',
			url:barley.ajaxurl,
			data:{'post_id' : post_id, 'action' : 'tweet'},
			success:function( data ){
				tweetbutton.find('span').text( data ); 
			}
		});
	});
});

最后在你想要展示分享按钮的地方,加入下列代码即可。

$post_id = $post->ID;
$title = get_the_title( $post_id );
$link = get_permalink( $post_id );
$min_count = 1;
$count = ( $count = get_post_meta( $post_id, 'post_tweets', true ) ) ? $count : $min_count;
echo esc_html('分享到微博 ' . $count . '');

说明:因为没有使用第三方分享接口,所以并不是在分享成功后增加数量。