wpで定期実行したい時、「wp-cron」を使うことで実現します。
例えば、毎日午前6時にデータ集計したり、30日経過後の論理削除データをけしたりしたい時ってありますよね。
それでは、これからwpで定期実行するやり方を解説していきます。
1.設定
まずfunctions.phpに以下を追記します。
functions.php
function auto_func()
{
//定期実行させる処理が書いたphpファイル
$return_url = dirname(__FILE__) . '定期実行させたいphpファイル';
require $return_url;
}
add_action('auto_func_cron', 'auto_func');
if (!wp_next_scheduled('rss_check_cron')) {// 何度も同じcronが登録されないようにするため
//スケジュールを組み立て
$difference = (current_time('timestamp') - time()) / 3600;
$my_time = wp_date('Y-m-d 09:00:00', current_time('timestamp'));
$task_time = strtotime(-1 * $difference . " hour", strtotime($my_time));
//スケジュール登録する(毎日)
wp_schedule_event($task_time, 'daily', 'auto_func_cron');
}
2.確認
プラグイン「WP Crontrol」をインストールする.
「WP Crontrol」を使えば、視覚的にいつ実行されるのか(されたのか)わかる。
3.おことわり
「WP-Cron」はOSのcronとは違います。
webサイトにアクセスがあったときに実行される「擬似」的なcronです。
なので逆にアクセス数の少ないwebサイトですと、cron実行に若干のタイムラグがあります。