WordPress Ajax加载实例
有人问我这个主题的顶部Ajax无刷新加载评论是如何实现的,简单整理一下,看下代码应该就明白了。
jQuery代码:
//最新评论
$('#lianxi').live('click', function(e) { //通过顶部lianxi按钮来触发
e.preventDefault();function ajaxs() {
$.ajax({
url: '/?action=ajax',
type: 'get',
beforeSend: function() {
$('#ajaxpinglun').empty().html('<div style="text-align:center;padding:20px;">Ajax加载中....</div>') //显示loading
},
error: function(a) {
$('#ajaxpinglun').hide().empty().html('<div style="text-align:center;padding:20px;">没加载</div>').fadeIn('fast') //错误时输出
},
success: function(a) {
$('#ajaxpinglun').empty().html(a) //成功时输出
}
});
return false
};
ajaxs();
});
页面:
<div id="lianxi"></div> --这个是按钮
<div class="lxpanel"><div id="ajaxpinglun"></div></div> --显示的div层
php function获取数据:
##评论排行和评论
function AjaxLoad() {
if (isset($_GET['action'])) {
if ($_GET['action'] == 'ajax') {
//获取最新评论代码或想显示的内容echo '<div class="rc_comments">';
global $wpdb;
$sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url,comment_author_email, SUBSTRING(comment_content,1,16) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' AND user_id='0' AND comment_author != '郑永' ORDER BY comment_date_gmt DESC LIMIT 6";
$comments = $wpdb->get_results($sql);
//$comment->comment_content=preg_replace('#\[img\](.*)\[/img\]#','[图]',$comment->comment_content);
$output = $pre_HTML;
foreach ($comments as $comment) {
$output .= "\n<li>".get_avatar($comment, 32,'',$comment->comment_author)." <a href=\"" . get_permalink($comment->ID) ."#comment-" . $comment->comment_ID . "\" title=\"发表在: " .$comment->post_title . "\">" .strip_tags($comment->comment_author).":<br/>". strip_tags($comment->com_excerpt)."</a><br /></li>";
}
$output .= $post_HTML;
echo $output;
echo '</ul>';
die;}
}
}
add_action('init', 'AjaxLoad');
CSS:
#ajaxpinglun {
padding:0 15px 15px;
max-width:280
}.lxpanel {
position:absolute;
top:62px;
right:45px;
border:1px solid #DDD;
z-index:999
}#lianxi {
position:absolute;
top:17px;
right:90px;
width:23px;
height:20px;
border:1px solid #999;
cursor:pointer;
z-index:999;
border-radius:4px
}
#lianxi:before {
display:block;
position:absolute;
left:20%;
top:100%;
width:0;
height:0;
border-left:9px solid #999;
border-right:7px solid transparent;
border-bottom:7px solid transparent;
content:''
}
PS:后来又上传了具体代码,试试吧,应该可以。如果还是不行,你还是看这个教程吧:https://www.google.com.hk/search?hl=zh-CN&q=wordpress ajax加载数据,按钮和css显示部分参考本站。
上一篇:阿根廷共享电动踏板车
下一篇:阿根廷的经济早已崩溃了
抢沙发,好像是我问的,感谢博主无私分享
博主,没搞定啊,按这些弄了,老是加载首页,不加载评论哇!
@好事多磨 慢慢研究,你加了lianxi按钮了么,可以的话,网址给个看看什么情况,至少要能显示加载中或则还没加载。
非技术的路过。
我之前也弄了!但是js都失效了!后来上网看了下、太费劲了。就放弃了
@云中君 慢慢折腾,乐趣就在成功的那一刻。
正在你网站上听音乐~
@ChoJemmy 嗯,还是挺方便的,随处可听。
不懂的人就如我 只能呵呵
@鸟叔 可以套用
这段代码实现只是针对你这个主题的吧
@zwwooooo 嗯,CSS没贴出来,评论代码也没贴出来,我用的是你的评论输出调用代码。
@郑永 把CSS、pl输出代码贴出来看看!
@鸟叔 OK,马上放上。
测试楼猪的AJAX加载
大神
你是怎么实现全站AJAX的???好喜欢啊
@博主太厉害了 也没全站啊。