本文主要介绍了Wordpress支持和反对功能的实现方法。通过添加自定义功能,是WordPress典型的二次开发技巧,有一定的参考价值。有需要的朋友可以参考一下。
本文阐述了Wordpress实现文章支持和反对功能的方法。分享给你,供你参考。具体分析如下:
如果你去网易或者QQ网站,你会看到文章页面有很多支持和反对的功能,我们可以发表自己的意见。那么,文章的支持和反对功能是如何实现的呢?在这里,我将介绍如何通过ajax快速实现它们。
我用wp进行了二次开发。当然也可以安装插件,不过是我自己定制的。实现代码:
首先,在数据库表wp_posts中添加两个字段like和different。
PHP实例代码如下:
复制代码代码如下:publicfunctiondolike_unlike(){
$b=M();
$input=newinput();
$id=$input->post('id');//过滤提交的信息。防止sql注入,之前发的代码我都补上了。
//$id=5524;
$val=$_POST['data'];
if($val==1){
$b->query("update`wp_posts`set`like`=`like`+1WHEREid=$id");//点击like的更新
}elseif($val==0){
$b->query("update`wp_posts`set`unlike`=`unlike`+1WHEREid=$id");//dislike更新
}else{
$this->error('error');
}
$list=$b->query("SELECT`like`,`unlike`FROM`wp_posts`WHEREid=$id");//获取数据
$like=$list[0]['like'];
$dislike=$list[0]['unlike'];
if($like!=0||$dislike!=0){//计算
$elike=$like/($like+$dislike);
$elike=substr($elike*100,0,4);
$edislike=$dislike/($like+$dislike);
$edislike=substr($edislike*100,0,4);
}
//echo$elike;
$output=array(//组合函数待输出
likenum=>$like,
dislikenum=>$dislike,
like=>$elike,
dislike=>$edislike
);
//echo$list;
//dump($output);
$this->ajaxReturn($output,'success',1);//输出
//echo'ok';
//$this->display('');
}
html实例代码如下:
复制代码代码如下:<divclass="cl"></div>
<style>
.recomm{border-bottom:4pxsolid#FF7523;color:#FF7523}
.single_share_class{position:absolute;left:-95px;top:80px;width:75px;height:328px;text-align:center;background:url(/img/single_page_share.png)no-repeat;}
.single_share_class.comm_num{padding:12px048px0px}
.single_share_class.comm_numspan{font-size:10px;line-height:11px;color:#ff9853;display:block}
.single_share_class>span>span>span{margin-bottom:7px!important;}
.single_share_class.copylink{padding:28px000;cursor:pointer}
.single_share_class.st_sharethis_large>span>span{background:none!important}
.dingandcai{width:526px;height:62px;background:url(/img/likeandunlike.jpg)no-repeat;margin:20px0;line-height:62px;text-align:center;font-size:24px;text-shadow:1px1px1px#000;}
.dingandcai.left_like{width:224px;float:left;height:62px;position:relative}
.dingandcai.left_likespan,.dingandcai.right_unlikespan{position:relative;z-index:2}
.dingandcai.dingload{width:78px;float:left;}
.dingandcai.right_unlike{width:224px;float:left;height:62px;position:relative}
.dingandcai.left_like.left_con{background:url(/img/likeandunlike.jpg)0px-63pxno-repeat;width:50%;height:62px;position:absolute;top:0;left:0;z-index:1}
.dingandcai.right_unlike.right_con{background:url(/img/likeandunlike.jpg)-302px-63pxno-repeat;width:50%;height:62px;position:absolute;top:0;left:0;z-index:1}
.allow_click,.disallow_click{cursor:pointer}
</style>
<divclass="dingandcai">
<divclass="left_like"val="1"postid="<?phpthe_ID();?>">
<divclass="left_con"></div><spanid="like">Like</span>
</div>
<divclass="dingload">
<imgsrc="/img/loading_sm.gif"/>
</div>
<divclass="right_unlike"val="0"postid="<?phpthe_ID();?>">
<divclass="right_con"></div>
<spanid="dislike">Dislike</span>
</div>
</div>
<divclass="cl"></div>
js实例代码如下:
复制代码代码如下:jQuery(".dingloadimg").ajaxStart(function(){//ajax提示
jQuery(this).show();
});
jQuery(".dingloadimg").ajaxStop(function(){
jQuery(this).hide();
});
varpid=jQuery(".left_like").attr("postid");
varlikecookie=jQuery.cookie("like"+pid);
if(likecookie!=pid){//判断是否点击过,如果没有点击则
jQuery(".left_like,.right_unlike").addClass("allow_click");
jQuery.get('/cityosweb/default.php/Shanmao/wplike_unlike',{id:pid},function(data){
if(data.status==1){//显示背景百分比和likedislike字样
jQuery(".left_like.left_con").css("width",data.data.like+"%");
jQuery(".right_unlike.right_con").css("width",data.data.dislike+"%");
}
},"json");
}else{//如果已经投过票了则
jQuery(".left_like,.right_unlike").addClass("disallow_click");
jQuery.get('/cityosweb/default.php/Shanmao/wplike_unlike',{id:pid},function(data){
if(data.status==1){//显示背景百分比和投票数
//alert(data.likenum);
jQuery("#like").html(data.data.likenum);
jQuery("#dislike").html(data.data.dislikenum);
jQuery(".left_like.left_con").css("width",data.data.like+"%");
jQuery(".right_unlike.right_con").css("width",data.data.dislike+"%");
}
},"json");
}
jQuery(".left_like,.right_unlike").click(function(){
if(jQuery(this).hasClass("allow_click")){//如果有这个class才提交
varval=jQuery(this).attr("val");
varpostid=jQuery(this).attr("postid");
jQuery.post('/cityosweb/default.php/Shanmao/dolike_unlike',{data:val,id:postid},function(data){//点击的时候
if(data.status==1){//成功返回处理
jQuery("#like").html(data.data.likenum);
jQuery("#dislike").html(data.data.dislikenum);
jQuery(".left_like.left_con").css("width",data.data.like+"%");
jQuery(".right_unlike.right_con").css("width",data.data.dislike+"%");
jQuery(".left_like,.right_unlike").removeClass("allow_click").addClass("disallow_click");
jQuery.cookie('like'+postid,postid,{expires:1});//提交后写入cookie,这里是用juqery.cookie插件。保存一天时间,每篇文章保存不一样的id。值随意,只要你上面好做判断。
}else{
alert(data.info);
}
},"json");
}
});
jQuery(".disallow_click").live("click",function(){//不允许提交时候d出
alert("Yourvotehasalreadybeensubmitted!");
});PHP的示例代码如下:
复制代码如下:公共函数dolike_inclike(){
$b=m();
$input=newinput();
$id=$input->;post(“id”);//过滤提交的信息。为了防止sql注入,我把前面的代码都补上了。
//$id=5524;
$val=$_POST['data'];
if($val==1){
$b->;query("update`WP_posts`set`like`=`like`+1其中id=$id");//点击更新like
}elseif($val==0){
$b-->;query("update`WP_posts`set`unlike`=`unlike`+1,其中id=$id");//不喜欢更新
}else{
$this-->;错误('error');
}
$list=$b->;query("SELECT`like',`like`FROM`WP_posts`WHEREid=$id");//Getdata
$like=$list[0]['like'];
$dislike=$list[0]['不像'];
如果($喜欢!=0||$不喜欢!=0){//Calculate
$elike=$like/($like+$dislike);
$elike=substr($elike*100,0,4);
$edislike=$dislike/($like+$dislike);
$edislike=substr($edislike*100,0,4);
}
//echo$elike;
$output=array(//要输出的组合函数
likenum=>;$like,
dislikenum=>;$不喜欢,
喜欢=>$elike,
dislike=>;$edislike
);
//echo$list;
//dump($output);
$this->;ajaxReturn($output,'success',1);//output
//echo'ok';
//$this->;显示(“”);
}
HTML示例代码如下:
复制代码如下:
。recomm{border-bottom:4pxsolid#ff7523;color:#FF7523}
。single_share_class{位置:绝对;左:-95px;top:80px;宽度:75px高度:328px文本对齐:居中;后台:url(/img/single_page_share.png)无重复;}
。单个共享类。comm_num{padding:12px048px0px}
。单个共享类。comm_numspan{font-size:10px;行高:11px颜色:#ff9853display:block}
。single_share_class>span>span>span{margin-bottom:7px!重要;}
。单个共享类。copylink{padding:28px00;cursor:pointer}
。单个共享类。st_sharethis_large>span>span{background:无!重要}
。dingandcai{width:526px;身高:62px背景:url(/img/likeandunlike.jpg)无重复;边距:20px0;行高:62px文本对齐:居中;字体大小:24pxtext-shadow:1px1px1px#000;}
。丁根凯。left_like{width:224px;浮动:左;身高:62pxposition:relative}
。丁根凯。左_像跨度,。丁根凯。right_likespan{position:relative;z-index:2}
。丁根凯。dingload{width:78px;浮动:左;}
。丁根凯。右_不像{width:224px;浮动:左;身高:62pxposition:relative}
。丁根凯。左_像。left_con{background:URL(/img/likeandunlike.jpg)0px-63pxno-repeat;宽度:50%;身高:62px位置:绝对;top:0;左:0;z-index:1}
。丁根凯。对_不像。right_con{background:URL(/img/likeandunlike.jpg)-302px-63px无重复;宽度:50%;身高:62px位置:绝对;top:0;左:0;z-index:1}
。allow_click,。disallow_click{cursor:pointer}
<;/style>;
<;divclass="dingandcai">
<;divclass="left_like"val="1"postid="<;?PHPthe_ID();?>>
<;divclass="left_con"></div>;<spanid="like">。喜欢</span>。
<;/div>;
<;divclass="dingload">
<;imgsrc="/img/loading_sm.gif"/>;&nbsp
<;/div>;
<;divclass="right_like"val="0"postid="<;?PHPthe_ID();?>>
<;divclass="right_con"></div>;
<;spanid="不喜欢">。不喜欢</span>。
<;/div>;
<;/div>;
<;divclass="cl"></div>;
js示例代码如下:
Copycode代码如下:jQuery("。dingloadimg”)。Ajaxstart(function(){//Ajaxprompt
jQuery(this)。show();
});
jQuery("。dingloadimg”)。Ajaxstop(function(){
jQuery(this)。hide();
});
varpid=jQuery("。left_like”)。attr("postid");
varlikecookie=jquery.cookie("like"+PID);
if(喜欢cookie!=pid){//判断是否被点击,如果没有被点击,
jquery("。左_像,。对_不像”)。addclass("allow_click");
jQuery.get('/cityosweb/default.PHP/shanMao/WPlike_unlike',{id:pid},Function(data){
if(data.status==1){//显示背景百分比和likedislike
jQuery(".left_like.left_con”)。CSS("width",data.data.like+""");
jQuery("。对_不像。右_con”)。css("width",data.data.dislike+""");
}
},"JSON");
}else{//如果你已经投了
jquery("。左_像,。对_不像”)。addclass("disallow_click");
jQuery.get('/cityoweb/default.PHP/shanMao/WPlike_like',{ID:PID},function(data){
if(data.status==1){//显示后台百分比和投票数[/br
jQuery("#like")。html(data.data.likenum);
jQuery("#不喜欢")。html(data.data.dislikenum);
jQuery("。左_像。left_con”)。css("width",data.data.like+""");
jQuery("。对_不像。右_con”)。css("width",data.data.dislike+""");
}
},"JSON");
}
jquery("。左_像,。对_不像”)。单击(function(){
if(jquery(this))。hasclass("allow_click"){//有这个类才提交[
varpostid=jQuery(this)。attr("postid");
jQuery.post('/cityosweb/default.PHP/shanMao/dolike_unlike',{data:val,id:postid},function(data){//当点击
if(data.status==1){
jQuery("#like")。html(data.data.dislikenum);
jQuery("。左_像。left_con”)。css("width",data.data.like+""");
jQuery("。对_不像。右_con”)。css("width",data.data.dislike+""");
jQuery("。左_像,。对_不像”)。removeClass("allow_click")。addClass("disallow_click");
jquery.cookie('like'+postid,postid,{expires:1});//提交后写一个cookie。这里,使用juqery.cookie插件。保存一天,每篇文章保存一个不同的id。值是可选的,只要你能做出好的判断。
}else{
alert(data.info);
}
},"JSON");
}
});
jquery("。不允许_点击”)。live("click",function(){//提交时不允许d出
提示("您的投票已经提交了!");
});
我希望这篇文章能帮助你建立你的WordPress网站。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)