みなみさんが WP 2.7 にしたら、wp-shot が動作しなくなったとのことなので、多少修正して WP 2.7 でも動作するようにしてみました。
どうやら wp-shot で、定期チェックに使っている Pseudo-cron.php が WP 2.7 では、正常に動作しないっぽい。
そんなわけで Pseudo-cron.php をバッサリ切り捨てて、WordPress 2.1 からある標準機能 wp-cron を使用することにしました。
ついでに、今までのバージョンだと http://example.com/wp-content/wp-plugins/wp-shot/wp-shot.php に直接アクセスすると、メールチェックが動作していたので、これも動作しないようにしました。
しかし、人のソースを読むのは勉強になるなぁ。
で、その際に wp-cron についてアレコレ試してみたので自分用にメモ。
wp-cron を使って定期的に一定の処理を行うには以下のように記述すればよい。
define('CRON_SCHEDULE_HANDLER', 'hogehoge'); // wp-cron で実行させたい処理 function cron_schedule_handler() { // ここに実際の処理を記述 // 指定時間後に再度起動 $time_interval = 10 * 60; wp_schedule_single_event(time() + $time_interval, CRON_SCHEDULE_HANDLER); } // wp-cron でスケジュールされていなければ、スケジュール登録 $crons = _get_cron_array(); $enabled = false; foreach ( $crons as $time => $tasks ) { foreach ( $tasks as $procname => $task ) { if ($procname === CRON_SCHEDULE_HANDLER) { $enabled = true; break; } } if ($enabled) break; } if (!$enabled) wp_schedule_single_event(time(), CRON_SCHEDULE_HANDLER); unset($tasks); unset($crons); // スケジュール実行 add_action(CRON_SCHEDULE_HANDLER, 'cron_schedule_handler');
ちなみに wp-cron に登録されているジョブの一覧は、以下のプラグインで確認できます。
wp-cron の動作原理については hiromasa さんのエントリが詳しいです。
どのへんがそうお感じでしょうか? wp-shot は設定画面がゴチャゴチャしている印象があるんですが……。Ktai Entry は、機能豊富ですが設定のしやすさ、とっつきやすさは wp-shot (や他のツール) よりも上だと自負しています。
正直なところ、2008年も暮れつつある現在では「PHP5 が使えない」という時点で、サーバーをよそに移った方がいいんですよね。いろいろ事情はあるでしょうが、いまどき PHP4 のままなんて……。
わがまま仕様で申し訳ないす。
なんかこのシンプル感がステキなのです。
ゆりこさん、どもです。
私は、このプラグインは使用していないので(と言うか、ケータイにカメラも付いてないので必要ない 😳 )完全にみなみさん専用です。
彼女のところのサーバが PHP5 に移行できれば、お役御免になることでしょう。
実は Pseudo-cron.php は、WordPress 2.6 以前でもサイトによっては反応がないという問題がありました。WordPress 2.7 特有の問題じゃない可能性があります。wp-shot はすでに開発が停止していて、他にも不具合がいっぱいあることが分かっています。なので、現在では「サーバーの PHP を 5.0 以降に変更して Ktai Entry に移行する」のが正しいと思われます 😉
どうしても PHP5 にできないなら、norida さんの MobG がよいと思います。設計思想がだいぶ違うので、使い勝手が変わってしまいますが。
ピンバック: M’s Life 2 » いまばりタオル