1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 文章页点赞php代码 wordpress文章页面添加点赞功能

文章页点赞php代码 wordpress文章页面添加点赞功能

时间:2024-02-12 23:21:52

相关推荐

文章页点赞php代码 wordpress文章页面添加点赞功能

wordpress的文章点赞方法很多,而且大多数都是依赖插件,插件多的话,网站打开速度较慢。所以分享出来一款非常简洁的纯代码实现wp主题点赞的功能。并且运用cookies有效的解决了重复点赞bug。

1、在functions.php文件中添加点赞方法:

add_action('wp_ajax_nopriv_yd24_goods', 'yd24_goods');

add_action('wp_ajax_yd24_goods', 'yd24_goods');

function yd24_goods(){

$id = $_POST["um_id"];

$action = $_POST["um_action"];

if ( $action == 'click'){

$yd24_raters = get_post_meta($id,'yd24_click',true);

$expire = time() + 99999999;

$domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false;

setcookie('yd24_click_'.$id,$id,$expire,'/',$domain,false);

if (!$yd24_raters || !is_numeric($yd24_raters)) {

update_post_meta($id, 'yd24_click', 1);

}else {

update_post_meta($id, 'yd24_click', ($yd24_raters + 1));

}

echo get_post_meta($id,'yd24_click',true);

}

die;

}

2、在头部引用jquery-1.11.3.min.js或者jquery其他版本

3、在头部或尾部添加ajax

$(document).ready(function() {

$.fn.postLike = function() {

if ($(this).hasClass('done')) {

alert('您已赞过本博客!');

return false;

} else {

$(this).addClass('done');

var id = $(this).data("id"),

action = $(this).data('action'),

rateHolder = $(this).children('.count');

var ajax_data = {

action: "yd24_goods",

um_id: id,

um_action: action

};

$.post("/wp-admin/admin-ajax.php", ajax_data,

function(data) {

$(rateHolder).html(data);

});

return false;

}

};

$(document).on("click", ".favorite",

function() {

$(this).postLike();

});

});

4、添加前台点赞的调用代码:

class="favorite<?php if(isset($_COOKIE['yd24_click_'.$post->ID])) echo ' done ';?>">赞

<?php if( get_post_meta($post->ID,'yd24_click',true) ){

echo get_post_meta($post->ID,'yd24_click',true);

} else {

echo '0';

}?>

5、参考CSS样式方便大家操作:

.post-like{

text-align:center;

padding:10px

}

.post-like a{

background-color:#21759B;

border-radius: 3px;

color: #FFFFFF;

font-size: 12px;

padding: 5px 10px;

text-decoration: none;

outline:none

}

.post-like a.done, .post-like a:hover{

background-color:#eee;

color:#21759B;

}

.post-like a.done{

cursor:not-allowed

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。