Wordpress非插件自定义点赞功能
前端HTML部分
<div class="btn-zan <?php if(isset($_COOKIE['bigfa_ding_'.get_the_ID()])) echo ' liked'; ?>" data-id="<?php get_the_ID(); ?>" data-action="ding"> <i class="wpcom-icon fa fa-thumbs-o-up"></i> 赞 <span class="entry-action-num">( <?php if( get_post_meta(get_the_ID(),'bigfa_ding',true) ){ echo get_post_meta(get_the_ID(),'bigfa_ding',true); } else { echo '0'; }?> )</span> </div>
.entry-action .btn-zan { display: inline-block; padding: 4px 30px; font-size: 18px; line-height: 30px; color: #f8504b; border: 1px solid #f8504b; border-radius: 4px; vertical-align: top; } .entry-action .btn-zan.liked, .entry-action .btn-zan:hover { color: #fff; background-color: #f8504b; cursor: pointer; border-color: #f8504b; } .entry-action .btn-zan i { position: relative; vertical-align: top; line-height: 30px; }
模板的footer.php文件中添加Javascript部分代码,需要引用版本为1.10或以上的jQuery
<script type="text/javascript">
//获取cookie
function getCookie(cookieName){
var cookieValue="";
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
if (cookie.substring(0, cookieName.length + 2).trim() == cookieName.trim() + "=") {
cookieValue = cookie.substring(cookieName.length + 2, cookie.length);
break;
}
}
}
return cookieValue;
}
jQuery(document).ready(function($) {
$.fn.postLike = function() {
if ($(this).hasClass("liked")) {
var post_id = $(".btn-zan").attr("data-id");
//获取COOKIE
if ( getCookie('bigfa_ding_' + post_id) != '' ){
alert('您已经点过赞了!');
}
return false;
} else {
$(this).addClass("liked");
var id = $(this).data("id"),action = $(this).data("action"),rateHolder = $(this).children(".entry-action-num");
var ajax_data = {action: "bigfa_like",um_id: id,um_action: action};
$.post("<?php bloginfo('url');?>/wp-admin/admin-ajax.php", ajax_data,
function(data) {
$(rateHolder).html(data);
});
return false;
}
};
$(document).on("click", ".btn-zan",function() {
$(this).postLike();
});
});
</script>
function.php文件添加方法
add_action('wp_ajax_nopriv_bigfa_like', 'bigfa_like');
add_action('wp_ajax_bigfa_like', 'bigfa_like');
function bigfa_like(){
global $wpdb,$post;
$id = $_POST["um_id"];
$action = $_POST["um_action"];
if ( $action == 'ding'){
$bigfa_raters = get_post_meta($id,'bigfa_ding',true);
$expire = time() + 99999999;
$domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false; // make cookies work with localhost
setcookie('bigfa_ding_'.$id,$id,$expire,'/',$domain,false);
if (!$bigfa_raters || !is_numeric($bigfa_raters)) {
add_post_meta($id, 'bigfa_ding', 1);
}else {
update_post_meta($id, 'bigfa_ding', ($bigfa_raters + 1));
}
echo get_post_meta($id,'bigfa_ding',true);
}
die;
}

浙公网安备 33010602011771号