咱们在网上浏览某些网站的文案时,在文案的结尾处,都会有一个点赞的按钮,倘若觉得文案内容非常不错,就能够点击这个“点赞”按钮,给这篇文案进行点赞一下。在wordpress网站的模板主题研发中,咱们可不能够亦为咱们wordpress网站的文案添加上这个“点赞”功能呢?答案是肯定的。那样,怎么样给wordpress网站的文案添加“点赞”功能呢?看我是怎么样实现的吧。
第1步:在wordpress模板的头部文件header.php中引入jquery。
为了在点击“点赞”按钮时,能够向后台传递数据,咱们这儿要用到jquery的AJAX处理函数,因此,咱们要先在wordpress模板的头部文件中引入这个jquery文件,我这儿是jquery1.7.2版本,其它版本亦能够。代码如下:
<script src="<?php bloginfo("template_url"); ?>/js/jquery-1.7.2.min.js"></script>
第二步:在wordpress文案内容下方添加“点赞”按钮。代码如下:
<div class="item single_praise">点赞:<span class="dashicons-before dashicons-heart"></span><span class="praise_num"><?php$praise_num = get_post_meta($post->ID,post_praise)[0]; //获取点赞数echo $praise_num ? $praise_num : 0;?></span></div>
第三步:添加点击“点赞”的事件处理代码。
咱们要给这个“点赞”按钮添加一个事件,只要一点击这个“点赞”按钮,就弹出相应的事件处理,把当前文案的ID号经过AJAX传递到single_praise.php文件中。代码如下:
<script type="text/javascript">$(function(){var pid = <?php echo $post->ID; ?>; //文案IDvar user = <?php echo wp_get_current_user()->user_login; ?>; //当前登录的用户名
$(".single_praise").click(function(){
$.ajax({type:post,url:<?php bloginfo("template_url"); ?>/include/single_praise.php,data:{ pid:pid,user:user },success:function(e){ console.log(e)var num = e ? e : 0;$(".praise_num").html(num); //把点赞重新写入
}})})})</script>
第四步:向wordpress数据库中的对应文案添加“点赞”数据。
在wordpress模板目录下的include目录的下面,创建一个single_praise.php文件,用来接收AJAX传递过来的数据,而后,向wordpress数据库里添加或修改数据(文案的点赞数据)。代码如下:
<?phpdefine(BASE_PATH,str_replace( \\ , / , realpath(dirname(__FILE__)./../../../../)));//获取根目录require(BASE_PATH./wp-load.php );$postid = esc_sql($_POST[pid]);$user = esc_sql($_POST[user]);$u_ip = $_SERVER["REMOTE_ADDR"];if($postid==0 ){ //倘若文案ID=0exit("违法操作");}//向数据库中添加点赞数据$praise_num = get_post_meta($postid,post_praise)[0];$user_views = !empty($praise_num) ? $praise_num : 0;update_post_meta($postid,post_praise,$user_views+1);print_r($praise_num); exit;
通过上面的五步,咱们就给wordpress网站的文案添加了点赞功能,咱们每点击一次,就会给文案的点赞数据+1。这般,咱们就基本上完成为了操作。然则,有一个美中不足的地区,同一个用户,倘若连续点击这个“点赞”按钮,就会一直地增多点赞数,这般不太友好。通常状况下,咱们只让一个用户一天之内,只能点赞一次,这个功能,咱们在下一章中再做相应的介绍,敬请期待,咱们下一章再见。
|