私は本当にこの1つに困っています。CrontabでW3トータルキャッシュ機能を実行
基本的には、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 protected]', '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関数を使ってテストし、何かが得られることを確認しました。
ページキャッシュが決してフラッシュされない点を除いて、スクリプトは正常に動作しています。私は電子メールを受け取り、ログにもエラーはありません。
アイデア?
ありがとうございました。
デフォルトで使用する最小限のパスについては、crontabのエントリが悪名を持っています。 crontabや呼び出されたスクリプトでPATHをPHPコードに設定していない限り、PHPライブラリを見つけることができないと思います。このアイデアをテストするには、else条件を指定してw3tc_pgcache_flushが存在しないという警告を出力しますか?がんばろう。 – shellter
うーん...そうかもしれない。私は確かにwp-load.phpファイルへの完全なパスを使用しています。しかし、w3tc関数を実行するために必要なものが見つからないようです。 wp-load.phpには、その機能がWordPressのプラグインファイルに到達するために必要なすべてが含まれていると考えられました。私が必要とする可能性のある他のファイルは何ですか? – David