以前是也整过异步,但我一直不知道wordpress可以自己处理自定义的AJAX回调请求,核心文件是/wp-admin/admin-ajax.php
.可以广泛运用在各处,这里给个实例吧,例子来自以前写的抓取网站第N条评论的作者,本文将以此为例介绍怎么在wordpress中用ajax异步调用PHP的function.
记得前几天大发还问我,是不是觉得网站人气完犊子了?很明显确实完犊子了,你们这些没良心的,我就才忙了几天,人就跑光了,一点也不忠贞.
但是即使没有人看,代码还是要继续写的.
LIFE WILL GO ON EVEN U LEFT
JQ部分
function xhdAlert() { /** XHD AJAX BEGIN **/ $.get( xhd_ajax_url, //ajax地址 { action : 'get_4000th_ca',//调用的PHP function beforeSend: function() { $('.oooo').text('Smallbutterfly loading'); } }, function( response ){ $('.oooo').remove(); if ( !response.error ) { alert ('The 4000th comment author of xiaohudie.net is ' + response.ca );//从PHP获取结果 } else { alert ('error: ' + response.error ); } }, "json" ); }
PHP部分
在functions.php
中加入如下代码
add_action( 'wp_ajax_nopriv_get_4000th_ca', 'get_get_4000th_ca' ); add_action( 'wp_ajax_get_4000th_ca', 'get_4000th_ca' ); function get_4000th_ca() { $comments = get_comments('number=1&offset=3999&order=ASC'); header( "Content-Type: application/json" ); foreach($comments as $comment) : echo json_encode( array('ca' => $comment ->comment_author) );//PHP获取的结果 exit;//请求完成 endforeach; }
调用
<?php echo "<script>"; echo "var xhd_ajax_url = '" . admin_url( 'admin-ajax.php' ) . "'"; echo "</script>" ; ?> <a class="oooo" onclick="javascript:xhdAlert()">alert</a>
演示如下:
wordpress-php-ajax is coded by http://xiaohudie.net. Any posts here is one hundred percent original, so please keep my link so as not to hurt this pretty girl. -
LIFE WILL GO ON EVEN U LEFT??
发生了什么了吗? :guai:
@airoschou 其实这个意思就是谴责你们都不来评论了.. :cry:
木有一篇看得懂,无从下口啊
正在研究PJAX,代码完全看不懂,只能一点点试,我去,累死啦,还没成功
路过。看懂一点点。 :kelian:
来了,给你增加点人气。
有些我木有看懂~~话说你折腾个比如动态加载评论表情??其实介个偶想要 :keai: :keai: …代码盲,自己不会….
@夜枫 动态加载?异步加载么
其实很多人都不知道这种方法。还在额外写个php文件,require_once( “../../../../wp-load.php” );
…
@Ludou 是的, 哈哈哈
一直想弄AJAX的,就是始终搞不懂怎么用