使用Crontab运行W3 Total Cache Function

时间:2012-01-01 03:38:25

标签: php wordpress plugins command-line crontab

确定。我真的很难过这个。

基本上,我需要调用Wordpress插件W3 Total Cache的函数作为crontab中cron作业的一部分。我想每晚自动清除整个页面缓存。

这是我需要在wordpress中正常工作的代码:

if (function_exists('w3tc_pgcache_flush')) {
w3tc_pgcache_flush();
} 

我目前正在使用以下脚本:

#!/usr/bin/php

<?php

define('DOING_AJAX', true);
define('WP_USE_THEMES', false);
$_SERVER = array(
    "HTTP_HOST" => "http://example.com",
    "SERVER_NAME" => "http://example.com",
    "REQUEST_URI" => "/",
    "REQUEST_METHOD" => "GET"
);
require_once('/path-to-file/wp-load.php');

wp_mail('email@example.com', 'Automatic email', 'Hello, this is an automatically scheduled email from WordPress.');

if (function_exists('w3tc_pgcache_flush')) {
w3tc_pgcache_flush();
} 

?>

和命令行:

php -q /path-to-file/flushtest.php

我使用wp_mail函数测试并确保我得到了一些东西。

该脚本工作正常,但页面缓存永远不会被刷新。我收到了电子邮件,日志中也没有任何错误。

有什么想法吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

现在使用更好的版本wp-cli。最新版本(0.9.2.8)与此插件兼容。只需在wordpress目录中的任何位置运行此命令:

wp w3-total-cache flush

答案 1 :(得分:0)

如果订单仍然有效,请稍微更改订单:

w3tc_pgcache_flush(); # let it crash here so that you won't get the mail
wp_mail('email@example.com', 'Automatic email', 'Hello, this is an automatically scheduled email from WordPress.');