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; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)