博客文章不断修改, 慢慢地发现. 修订版本越来越多. 特别在迁移数据库的时候才发现. 明明博客才那么几篇文章. 为什么表里有百来条记录呢? 进去看了看才发现. 哦!! 原来很多都是旧的版本数据. 没用的了. 唉, 想了想. 还是自己弄个插件. 自动清理一下吧.
所以就出现了一下的简单插件. 顺便把程序代码放在博客上, 就当时一个事例教程吧. 呵呵^^
该插件涉及到的函数有
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后台激活插件即可.
- /*
- Plugin Name: 自动清除修订版本
- Plugin URI: http://www.tmper.com/blog/clean-version/
- Description: 激活后可以自动清除一个星期前的修订版本(每星期清除一次)
- Author: 干草IT
- Version: 1.0.1
- Author URI:http://www.tmper.com
- */
- if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
- exit ("Do not access this file directly.");
- if(!function_exists('get_admin_url')) {
- function get_admin_url() {
- return get_bloginfo('url').'/wp-admin/';
- }
- }
- if (!class_exists('re_cleanVersion')) {
- class re_cleanVersion{
- /**
- * 初始化程序
- * 用于php4版本
- */
- function re_cleanVersion(){
- $this->__construct();
- }
- /**
- * 初始化程序
- */
- function __construct(){
- global $wpdb;
- $this->wpdb = & $wpdb;
- add_filter('cron_schedules', array($this, 'cron_schedules')); //自定义一星期执行一次的cron job
- }
- /**
- * 自定义一星期执行一次的计划任务时间
- * @param type $schedules
- * @return type
- */
- function cron_schedules($schedules) {
- $schedules['weekly'] = array('interval' => 604800,
- 'display' => __('weekly')
- );
- return $schedules;
- }
- /**
- * 激活计划任务
- */
- function setup_cron(){
- wp_clear_scheduled_hook('re_cleanVersion');
- wp_schedule_event(time(), 'weekly', 're_cleanVersion');
- }
- /**
- * 取消计划任务
- */
- function clean_cron(){
- wp_clear_scheduled_hook('re_cleanVersion');
- }
- /**
- * 清除一星期之前的修订版本
- */
- function cleanVersion(){
- $sql = "DELETE FROM `{$this->wpdb->prefix}posts` WHERE `post_type`='revision' AND `post_modified`<='".date('Y-m-d H:i:s', mktime()-604800)."'";
- return $this->wpdb->query($sql);
- }
- }
- }
- if (class_exists('re_cleanVersion')) {
- $re_cleanVersion = new re_cleanVersion();
- add_action('re_cleanVersion', array(&$re_cleanVersion, 'cleanVersion'));//添加清除修订版本记录的行为
- register_activation_hook(__FILE__, array(&$re_cleanVersion, 'setup_cron'));//安装时自动开启清除修订版本记录的计划任务
- register_deactivation_hook(__FILE__, array(&$re_cleanVersion, 'clean_cron'));//取消或卸载插件时自动关闭清除修订版本记录的计划任务
- }
除非注明,干草博客文章均为原创,转载请以链接形式标明本文地址