顶和踩php源码,wordpress顶和踩喜欢功能的实现

顶踩功能大家都知道,不用多解释,本文介绍使用代码实现顶踩功能详细步骤

首先创建数据表

2、准备投票和查询函数

A:数据函数的添加

B:数据查询函数的添加

3、整理前台的html和js调用

将上面的函数的创建后,后面我们就要输出wordpress顶和踩功能的前台代码了!

前台函数输出

<?php echo get_post_vote($post->ID,'up');?>

<?php echo get_post_vote($post->ID,'down');?>

将上面的代码放到我们需要显示wordpress顶和踩功能的地方,通过上面的函数代码得出了下面输出的html,大家适量的修改即可!

前台函数输出

0

1

c、js的调用

在wordpress主题文件的footer.php里加入

其中,jquery-1.7.2.min.js可以到网上下载,或者大家的主题里已经提供,那么就不需要调用,下面我们在主题文件夹的js文件下新建个ding.js,没有的创建一下,下面是ding.js的内容:okieEnable;

}

jQuery(document).ready(function($) {

var ashu_token = 1;

$('.vote_up a').click(function(){

//检查浏览器是否启用cookie功能

if( !ashu_isCookieEnable() ) {

alert("很抱歉,您不能给本文投票!");

return;

}

if( ashu_token != 1 ) {

alert("您的鼠标点得也太快了吧?!");

return false;

}

ashu_token = 0;

//获取投票a标签中的rel值

var full_info = $(this).attr( 'rel' );

var arr_param = full_info.split( '_' ); //以字符"_"分割

//发起ajax

$.ajax({

url:ajax_url, //ajax地址

type:'POST',

//请求的参数包括action rating postid三项

data:'action=vote_post&rating=' + arr_param[ 0 ] + '&postid=' + arr_param[ 1 ],

//返回数据

success:function(results){

if(results=='n'){

alert('评价失败');

ashu_token = 1;

}

if (results=='y'){

//如果成功,给前台数据加1

var upd_vd = 'vup' + arr_param[ 1 ];

$('#'+upd_vd).text(parseInt($("#"+upd_vd).text())+1);

ashu_token = 1;

}

if (results=='h'){

ashu_token = 1;

alert('已经发表过评价了');

}

if (results=='e'){

ashu_token = 1;

alert('评价失败');

}

}

});

});

$('.vote_down a').click(function(){

if( !ashu_isCookieEnable() ) {

alert("很抱歉,您不能给本文投票!");

return;

}

if(ashu_token != 1) {

alert("您的鼠标点得也太快了吧?!");

return false;

}

ashu_token = 0;

var full_info = $(this).attr( 'rel' );

var arr_param = full_info.split( '_' );

$.ajax({

url:ajax_url,

type:'POST',

data:'action=vote_post&rating=' + arr_param[ 0 ] + '&postid=' + arr_param[ 1 ],

success:function(results){

if(results=='n'){

alert('评价失败');

ashu_token = 1;

}

if (results=='y'){

var upd_vd = 'vdown' + arr_param[ 1 ];

$("#"+upd_vd).text(parseInt($("#"+upd_vd).text())+1);

ashu_token = 1;

}

if (results=='h'){

ashu_token = 1;

alert('已经发表过评价了');

}

if (results=='e'){

ashu_token = 1;

alert('发生未知错误');

}

}

});

});

});

4、最终后台的php处理

将代码放到functions.php完成处理ajax请求,/*

*wp的ajax都可以通过请求中的action参数来执行对应的钩子

*示例中我们的action参数值是vote_post

*所以我们可以直接用下面两个钩子来执行动作

*/

add_action("wp_ajax_vote_post", "add_votes_options");

add_action("wp_ajax_nopriv_vote_post", "add_votes_options");

function add_votes_options() {

if( isset($_POST['action']) && ($_POST['action'] == 'vote_post') ){

$postid = (int)$_POST['postid'];

if( !$postid ){

echo 'e'; //输出error

die(0);

}

//cookie中是否已经存在投票数据

$voted = $_COOKIE["smzdm_voted_".$postid];

if( $voted ){

echo 'h'; //输出have

die(0);

}

$ip = $_SERVER['REMOTE_ADDR'];//ip

$rating = $_POST['rating']; //投票内容

//判断用户是否登录

if( is_user_logged_in() ){

global $wpdb, $current_user;

get_currentuserinfo();

$uid = $current_user->ID;

}else{

$uid='';

}

if($rating=='up'){

$rating='up';

}else{

$rating='down';

}

//添加数据

$voted = add_vote($postid,$uid,$ip,$rating);

if($voted=='y'){

//设置cookie

setcookie("ashu_voted_" . $postid,$rating, time() + 3000000, '/');

echo 'y';//输出yes

die(0);

}

if($voted=='h'){

//设置cookie

setcookie("ashu_voted_" . $postid,$rating, time() + 3000000, '/');

echo 'h';

die(0);

}

if($voted=='e'){

echo 'n';//输出no

die(0);

}

}else{

echo 'e';//输出eroor

}

die(0);

}

到这里,教程算是结束了,要提醒大家的是,功能集成到主题后,需要将主题重新安装后,数据表才会被添加!OK。。。大家尝试吧!

歪迪资源屋有话要说:一淘送新人200补贴+8+4+3元立减券,我门槛领取,无需验证点击查看具体教程及介绍

这篇文章如果帮到了你 赏 赞 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值