例如给网站每页logo后面的一句名言,点击“换一条”就会ajax动态加载一条,使用了wordpress的自带ajax方法。下面介绍如何使用wordpress自带ajax方法:

1.在header.php文件加入html和js

html:

<span id="random"><i id="say"><?php echo random_str();?></i> [<a href="javascript:void();" onclick="say();" rel="nofollow">换一条</a>]</span>

js ajax请求:

<?php $admin_url=admin_url( 'admin-ajax.php' );?>
<script type="text/javascript">
function say(){
jQuery(document).ready(function($){
var data={
action:'say'
}
$.post("<?php echo $admin_url;?>", data, function(response) {
$("#say").text(response);
});
});
}
</script>

在wordpress中ajax请求的url地址是统一的,用$admin_url=admin_url( ‘admin-ajax.php’ )获取。

2.在主题的function.php中写接收请求处理函数

function say(){
echo random_str();
die();
}
add_action('wp_ajax_say', 'say');
add_action('wp_ajax_nopriv_say', 'say');

重点是这两个钩子函数,wp_ajax_say第一个参数是wp_ajax_函数名称,wp_ajax_nopriv_say表示没有登录的用户的处理函数,这里对有没有登录的用户都是一样的,所以都写上。

就这样,就已经实现了ajax的功能,是不是很方便,但是wordpress的ajax请求感觉好慢啊!!!

最后附上随机输出名言的函数:

function random_str() {  
$poems=array(
'三人行,必有我师焉。择其善者而从之,其不善者而改之。——孔子',
'成为卓越的代名词,很多人并不需要杰出素质的环境。——Steve Jobs',
'活着就是为了改变世界,难道还有其他原因吗?——Steve Jobs',
'Follow yourself.(追随你的内心)——Steve Jobs',
'生活是不公平的;要去适应它。——比尔盖茨',
'走自己的路,让别人说去吧。——但丁',
'成功并不是一条直线,而是一条蜿蜒曲折的线。',
'让你难过的事情,有一天,你一定会笑着说出来。 ——《肖申克的救赎》',
'如果额头终将刻上邹纹,你只能做到邹纹不要刻在你心上。——中国合伙人',
'梦想是什么,梦想就是一种让你感到坚持就是幸福的东西。——中国合伙人',
'记住你即将死去——乔布斯',
'当你快乐时,你要想,这快乐不是永恒的。当你痛苦时你要想这痛苦也不是永恒的。',
'古人云:尽人事,听天命。',
'如果人生能像svn一样能恢复到以前任何一个版本该多好啊',
'Stay Hungry, Stay Foolish',
'做你喜欢的事情不会觉得累',
'今天很残酷,明天更残酷,后天会很美好,但绝大多数人都死在明天晚上——马云',
'天才就是百分之九十九的努力加上百分之一的灵感,但是没有那百分之一的灵感万万不行 ——爱迪生',
'不要被教条束缚,那意味着你和别人一样思考,不要被他人的观点掩盖你真正的想法,听从你的直觉和心灵的指示。——Steve Jobs',
'The clock hand can return to the original point, but it is not that of yesterday. ',
);
return $poems[rand(0,count($poems)-1)];
}

转自:http://www.tantengvip.com/2014/01/wordpress-ajax-jquery/

黄聪:使用WORDPRESS自带AJAX方法的更多相关文章

  1. 使用wordpress自带ajax方法

    css3 提示只适用于高级浏览器: ChromeFirefoxSafariIE9+ valid.invalid.required的定义 代码如下 复制代码 input:required, input: ...

  2. 黄聪:《跟黄聪学WordPress插件开发》

    续<跟黄聪学WordPress主题开发>之后,又一个作品完成!<跟黄聪学Wordpress插件开发>,国内最好的Wordpress插件开发视频教程!! 目录预览: WordPr ...

  3. 黄聪:《跟黄聪学WordPress主题开发》

    又一个作品完成!<跟黄聪学Wordpress主题开发>,国内最好的Wordpress主题模版开发视频教程!! 目录预览: WordPress官方源文件层式结构讲解 WordPress数据库 ...

  4. 黄聪:wordpress教程

    又一个作品完成!<跟黄聪学Wordpress主题开发>,国内最好的Wordpress主题模版开发视频教程!! 目录预览: WordPress官方源文件层式结构讲解 WordPress数据库 ...

  5. 黄聪:wordpress后台导致fonts.googleapis.com、ajax.googleapis.com加载慢的解决方法

    方法1.使用我做的插件.[googleapis-to-useso] 方法2.在functions.php文件里面添加下面的代码就行了. if(is_admin()) { function hcsem_ ...

  6. 黄聪:使用$.getJSON解决ajax跨域访问 JQuery 的跨域方法(服务器端为wordpress程序)

    客户端: <input id="cat" name="cat" type="hidden" value="<? ech ...

  7. 黄聪:WordPress固定链接设置的几种方法

    wordpress固定链接设置的一些参数: %year%:基于文章发布的年份,比如2010: %monthnum%:基于文章发布的月份,比如01: %day%:基于文章发布当日,比如06: %hour ...

  8. 黄聪:wordpress后台加载ajax.googleapis.com导致打开速度很慢的解决方案

    打开wordpress后台,发现很卡,通过开发者工具看到是因为加载http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothn ...

  9. 黄聪:WordPress制作插件中使用wp_enqueue_script('jquery')库不起作用解决方法

    这个应该不是什么新信息,但我却是现在才搞清楚. 今天又是在wordpress调用jquery,情况还是如此.无意中打开wordpress中jquery.js,然后对比code.jquery.com中的 ...

随机推荐

  1. 关于JSP的C标签之forEach循环分隔符

    页面中可能说出现在forEach循环中间需要出力分隔符的问题, 比如: 小明 1年级,小王 2年级, 小张 3年级(循环单位是 ${bean.name} ${bean.class}) 此时的逗号出力, ...

  2. Codeforces Round #141 (Div. 2)

    A. Is your horseshoe on the other hoof? 模拟题意. B. Two Tables 暴力枚举\(x,y\). C. Fractal Detector 显然,判断图形 ...

  3. POJ Girls and Boys (最大独立点集)

                                                                Girls and Boys Time Limit: 5000MS   Memo ...

  4. GDB调试器

    /*this project used for gdb debug c programs*//*At first,using compile command turn out the executab ...

  5. javase tutorial

    http://docs.oracle.com/javase/tutorial/index.html

  6. A better SHOW TABLE STATUS

    From command line we have the entire MySQL server on hands (if we have privileges too of course) but ...

  7. jQuery.fn.extend与jQuery.extend

    jQuery.extend(),是扩展的jQuery这个类. 假设我们把jQuery这个类看成是人类,能吃饭能喝水能跑能跳,现在我们用jQuery.extend这个方法给这个类拓展一个能唱歌的技能.这 ...

  8. MVC View中获取Url参数的值

    如果url是 /home/index?id=3 直接Request就ok. Razor方法 @Html.ViewContext.RouteData.Values["id"] @Re ...

  9. 虚拟化之vmware虚拟机扩容与克隆

    前提条件: 1.在新建虚拟机的时候创建磁盘如下图,之后这个磁盘就可以在虚拟机关机状态下动态扩展大小,否则只能通过添加另外一块硬盘的方式来扩容.

  10. linux包之iproute之ip命令

    [root@localhost ~]# rpm -qf /sbin/ipiproute-2.6.32-31.el6.x86_64ip 是个命令, ip 命令的功能很多!基本上它整合了 ifconfig ...