自动清除修订版本插件 – WordPress开发事例

博客文章不断修改, 慢慢地发现. 修订版本越来越多. 特别在迁移数据库的时候才发现. 明明博客才那么几篇文章. 为什么表里有百来条记录呢? 进去看了看才发现. 哦!! 原来很多都是旧的版本数据. 没用的了. 唉, 想了想. 还是自己弄个插件. 自动清理一下吧.

所以就出现了一下的简单插件.  顺便把程序代码放在博客上, 就当时一个事例教程吧. 呵呵^^

该插件涉及到的函数有
register_activation_hook ( $file, $function )
register_deactivation_hook ($file, $function )
wp_clear_scheduled_hook ( ‘my_schedule_hook’ )
wp_schedule_event ( $timestamp, $recurrence, $hook, $args )
add_filter ( $tag, $function_to_add, $priority, $accepted_args )
add_action ( $tag, $function_to_add, $priority, $accepted_args )

以上函数的详细用法可去http://codex.wordpress.org/Function_Reference/<函数名>查看

在wp-content/plugins目录下创建一个cleanVersion.php文件. 然后把以下代码复制到该文件. 然后进入WP后台激活插件即可.

[php]  view plain copy
  1. /* 
  2. Plugin Name: 自动清除修订版本 
  3. Plugin URI: http://www.tmper.com/blog/clean-version/ 
  4. Description: 激活后可以自动清除一个星期前的修订版本(每星期清除一次) 
  5. Author: 干草IT 
  6. Version: 1.0.1 
  7. Author URI:http://www.tmper.com 
  8. */  
  9. if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))  
  10.     exit ("Do not access this file directly.");  
  11. if(!function_exists('get_admin_url')) {  
  12.     function get_admin_url() {  
  13.         return get_bloginfo('url').'/wp-admin/';  
  14.     }  
  15. }  
  16. if (!class_exists('re_cleanVersion')) {  
  17.     class re_cleanVersion{  
  18.   
  19.         /** 
  20.          * 初始化程序 
  21.          * 用于php4版本 
  22.          */  
  23.         function re_cleanVersion(){  
  24.             $this->__construct();  
  25.         }  
  26.   
  27.         /** 
  28.          * 初始化程序 
  29.          */  
  30.         function __construct(){  
  31.             global $wpdb;  
  32.             $this->wpdb = & $wpdb;  
  33.             add_filter('cron_schedules'array($this'cron_schedules')); //自定义一星期执行一次的cron job  
  34.         }  
  35.           
  36.         /** 
  37.          * 自定义一星期执行一次的计划任务时间 
  38.          * @param type $schedules 
  39.          * @return type  
  40.          */  
  41.         function cron_schedules($schedules) {  
  42.             $schedules['weekly'] = array('interval' => 604800,  
  43.             'display' => __('weekly')  
  44.             );  
  45.             return $schedules;  
  46.         }  
  47.   
  48.         /** 
  49.          * 激活计划任务 
  50.          */  
  51.         function setup_cron(){  
  52.             wp_clear_scheduled_hook('re_cleanVersion');  
  53.             wp_schedule_event(time(), 'weekly''re_cleanVersion');  
  54.         }  
  55.   
  56.         /** 
  57.          * 取消计划任务 
  58.          */  
  59.         function clean_cron(){  
  60.             wp_clear_scheduled_hook('re_cleanVersion');  
  61.         }  
  62.   
  63.         /** 
  64.          * 清除一星期之前的修订版本 
  65.          */  
  66.         function cleanVersion(){  
  67.             $sql = "DELETE FROM `{$this->wpdb->prefix}posts` WHERE `post_type`='revision' AND `post_modified`<='".date('Y-m-d H:i:s', mktime()-604800)."'";  
  68.             return $this->wpdb->query($sql);  
  69.         }  
  70.           
  71.     }  
  72. }  
  73. if (class_exists('re_cleanVersion')) {  
  74.     $re_cleanVersion = new re_cleanVersion();  
  75.     add_action('re_cleanVersion'array(&$re_cleanVersion'cleanVersion'));//添加清除修订版本记录的行为  
  76.     register_activation_hook(__FILE__array(&$re_cleanVersion'setup_cron'));//安装时自动开启清除修订版本记录的计划任务  
  77.     register_deactivation_hook(__FILE__array(&$re_cleanVersion'clean_cron'));//取消或卸载插件时自动关闭清除修订版本记录的计划任务  
  78. }  

除非注明,干草博客文章均为原创,转载请以链接形式标明本文地址

本文地址:http://www.tmper.com/blog/clean-version/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值