首页 » WordPress 插件 » 自己动手写 WordPress 插件:使用 WP-Cron

自己动手写 WordPress 插件:使用 WP-Cron

November 26th, 2007 at 01:01pm 雪山飞猪 浏览: 1,608

donate_to_redcross

上一节我们讲了如何利用 WordPress API 开发 WordPress 插件。这一节我们继续讲解 WordPress API,涉及的主题是 WP-Cron,就是在 WordPress 中安排任务。

如何在 WordPress 中安排任务,这是在 WordPress 2.1 中就引入的功能。本人针对这个功能翻译过一篇文章:如何在 WordPress 安排任务,建议大家在继续之前,好好阅读下那篇文章。

前面我们通过把沙发排名信息保存到数据库中,再有留言之后再进行更新,这样的操作来提高沙发插件的执行效率,今天来谈谈另外一种提高插件执行效率的方法,定时去更新沙发沙发的排名信息到数据库中来提高效率。

下面我们来讲解如何实现:
首先注释掉 sofa_comment_postadd_action('comment_post', 'sofa_comment_post');

然后添加如下代码:

//创建自定义的更新沙发排名信息的事件,调用更新沙发排名信息的函数add_action('update_sofa_event', 'update_sofa');

//定义任务,调用更新沙发排名信息的事件
if (!wp_next_scheduled('update_sofa_event')) {
	wp_schedule_event( time(), 'hourly', 'update_sofa_event' );
}

//当插件被停止时候,移除更新沙发排名信息的事件
function update_sofa_deactivation(){
	wp_clear_scheduled_hook('update_sofa_event');
}

register_deactivation_hook(basename(__FILE__),' update_sofa_deactivation');

上面的函数注视已经非常清楚了,这里不多讲了,这里是每个小时,更新一次,如果你觉得太频繁了,可以改成每天,把 wp_schedule_event 函数中 hourly 改成 daily 即可。

至于为什么要添加插件停止事件,是因为我们使用 wp_schedule_event 添加的定时事件没有用函数 wp_clear_scheduled_hook 清除掉,在插件停用之后还会继续运行的。

这篇到此为止,如果你有什么问题请给我留言,下一片我们将讲解 Option。请继续关注,并提出你的宝贵意见。

作者:雪山飞猪
原文链接:自己动手写 WordPress 插件:使用 WP-Cron
我爱水煮鱼版权所有,转载时必须以链接形式注明作者和原始出处及本声明。

17fav 收藏本文

5 条评论 添加你的评论 和主题无关问题请移步到这里发表

  • 1. 胡戈戈  |  November 26th, 2007 at 1:17 pm

    呵呵 ,不错哇

    [回复该留言]

  • 2. 大猫  |  November 26th, 2007 at 1:18 pm

    感觉一天一次频率都有点太高...会不会占用资源大了点呢?

    [回复该留言]

  • 3. MO  |  November 26th, 2007 at 3:54 pm

    楼上两个真不是一般的沙发党啊

    [回复该留言]

  • 4. 雪山飞猪  |  November 26th, 2007 at 5:09 pm

    @MO, 这个插件就是献给大猫和胡戈戈同学的!

    [回复该留言]

发表评论 和主题无关问题请移步到这里发表

必须

必填,打死不公开

:mrgreen: :neutral: :twisted: :arrow: :shock: :smile: :???: :cool: :evil: :grin: :idea: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: :!: :?:

10 个选择使用 WordPress 的原因 主题推荐:Underone's G7


订阅

本站推荐

分类

Clicki