wordpress调用ajax刷新,WordPress Ajax加载实例

2年前 (2019-08-29) | 3,899 views | 16 条评论 | 本文共2359个字

79ada4d5dcc8f05203b759f6c0d1cfc8.png 朗读这篇文章

有人问我这个主题的顶部Ajax无刷新加载评论是如何实现的,简单整理一下,看下代码应该就明白了。

jQuery代码:

//最新评论

$('#lianxi').live('click', function(e) { //通过顶部lianxi按钮来触发

e.preventDefault();

function ajaxs() {

$.ajax({

url: '/?action=ajax',

type: 'get',

beforeSend: function() {

$('#ajaxpinglun').empty().html('

Ajax加载中....
') //显示loading

},

error: function(a) {

$('#ajaxpinglun').hide().empty().html('

没加载
').fadeIn('fast') //错误时输出

},

success: function(a) {

$('#ajaxpinglun').empty().html(a) //成功时输出

}

});

return false

};

ajaxs();

});

页面:

php function获取数据:

##评论排行和评论

function AjaxLoad() {

if (isset($_GET['action'])) {

if ($_GET['action'] == 'ajax') {

//获取最新评论代码或想显示的内容

echo '

';

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

".get_avatar($comment, 32,'',$comment->comment_author)." ID) ."#comment-" . $comment->comment_ID . "\" title=\"发表在: " .$comment->post_title . "\">" .strip_tags($comment->comment_author).":
". strip_tags($comment->com_excerpt)."
";

}

$output .= $post_HTML;

echo $output;

echo '';

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显示部分参考本站。

0d1c832c1c538d87611cc0836aeae30d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现分页Ajax无限功能,可以按照以下步骤进行: 1. 在WordPress主题中创建一个新的页面模板,命名为“ajax-pagination.php”(或者其他你喜欢的名字)。 2. 在模板中添需要分页的内容。 3. 在模板中添一个按钮或链接,用于更多内容。 4. 使用jQuery编写Ajax代码,将按钮或链接与模板中的内容连接起来。 5. 在functions.php文件中添一个新的函数,用于处理Ajax请求。 6. 编写一个新的WordPress查询,用于获取下一页的内容。 7. 将查询结果返回给Ajax请求,并将其添到页面上。 以下是一个简单的示例代码,演示如何实现分页Ajax无限功能: 在ajax-pagination.php文件中,添以下代码: ``` <div id="content"> <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'post_type' => 'post', 'posts_per_page' => 3, 'paged' => $paged ); $query = new WP_Query($args); if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); // 输出文章内容 endwhile; endif; ?> </div> <div id="load-more"> <a href="#">更多</a> </div> ``` 在JavaScript文件中,添以下代码: ``` jQuery(document).ready(function($) { $('#load-more a').click(function() { var button = $(this), data = { 'action': 'load_more', 'query': loadmore_params.posts, 'page': loadmore_params.current_page }; $.ajax({ url: loadmore_params.ajaxurl, data: data, type: 'POST', beforeSend: function(xhr) { button.text('正在...'); }, success: function(data) { if (data) { button.text('更多').prev().before(data); loadmore_params.current_page++; if (loadmore_params.current_page == loadmore_params.max_page) button.remove(); } else { button.remove(); } } }); return false; }); }); ``` 在functions.php文件中,添以下代码: ``` add_action('wp_ajax_load_more', 'load_more'); add_action('wp_ajax_nopriv_load_more', 'load_more'); function load_more() { $query = json_decode(stripslashes($_POST['query']), true); $query['paged'] = $_POST['page'] + 1; $posts = new WP_Query($query); if ($posts->have_posts()) { while ($posts->have_posts()) { $posts->the_post(); // 输出文章内容 } } die; } ``` 以上代码仅仅是一个示例,你需要根据自己的实际情况进行修改和调整。但是,这个示例可以帮助你了解如何使用WordPressAjax来实现分页Ajax无限功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值