シェアオフィス6F
貸会議室6F

こんにちは。スタッフのユースケです。

今日はWordPressの定期実行に関するお話しです。

WordPressで定期的にバッチ処理を行いたいなんてことありませんか?
例えば、外部サイトから定期的にデータを取得してコンテンツを更新したり、イベント開催の1週間前にリマインドメールを配信したり。

そんなとき、定期的に処理を実行してくれる仕組みがWordPressにはあります。

「wp_cron」です。
ただし、この「wp_cron」は擬似的なcronで、指定した時間に必ず実行されるものではありません。

「wp_cron」の仕組みは下記のようになっています。

  • サイトにアクセスがある(管理画面でもOK)
  • 「wp_cron」が、スケジューラーに登録されているイベントの実行時間が経過しているかチェック
  • 経過しているイベントがあれば、該当処理を実行

よって、処理がスケジューリングされていても、サイトにアクセスがなければ実行はされませんし、アクセスのあった時間が基準となるため、確実に指定時間に実行されるわけではありません。

(※もし、指定時間に確実に実行したいのであれば、サーバー側のcron を使用すれば可能です。
  ただし、レンタルサーバーでは使用できないこともあります。)

それでは、実際に定期実行する処理を登録してみましょう。
テストメールを送信する処理をサンプルとして登録してみます。

// メール送信処理
function sample_remind_mail() {
  wp_mail( ’xxx@xxx.jp’, 'テストタイトル', 'テストメッセージ' );
}
add_action ( 'sample_add_cron', 'sample_remind_mail' );

// cron登録処理
if ( !wp_next_scheduled( 'sample_add_cron' ) ) {
  wp_schedule_event( time(), 'daily', 'sample_add_cron' );
}

上から順番に説明しますと、まずメール送信を行う処理を「sample_add_cron」というwp_schedule_eventでスケジューラーに登録しています。
「wp_next_scheduled」は、スケジューラーにイベントが登録されているか確認するものです。

「wp_schedule_event」の引数はそれぞれ下記の通りです。

  • 第1引数:最初に実行する時間
  • 第2引数:実行間隔
  • 第3引数:実行する処理のフック名

実行間隔は、「hourly」(毎時)、「twicedaily」(日に2回)、「daily」(毎日)があります。

これで、テストメールを送信する処理が毎日実行されます!
あとは、フックしている関数をカスタマイズして、定期実行したい処理に変えてみてくださいませ。

以上で定期実行処理の登録は完了ですが、プラスアルファでWordPressのCronに関する便利なプラグインを紹介します!

「WP Crontrol」
これはスケジューラーに登録されているイベントの確認・編集・削除・実行ができるプラグインです!

公式ディレクトリに掲載されているプラグインですので、通常どおりインストールできます。
インストールすると、「ツール」に「Crontrol」というメニューが追加されます。
ここをクリックすると、現在登録されているイベントを確認できます。
crontrol

このように、プラグインやテーマの更新チェックなど、デフォルトでいくつかのイベントが登録されていますね。
先ほどの登録処理を実行すると、ここにイベントが追加されます。

各イベントの右側にあるリンクで編集・削除・実行ができます。
「Run Now」:イベントの即時実行
 これを利用すると登録したイベントの動作確認ができるので、便利ですね!

「Delete」:イベントの削除
 WordPressのデフォルトで登録されているものを消さないように注意してください!

「Edit」:登録内容の変更
crontrol2
 「Hook name」と「Arguments」は処理が正しく動かなくなる可能性もあるので、変更する際は注意してください。
 「Next run」で次回実行される時間を変更できます。
 「Event Schedule」で実行サイクルを変更できます。

如何でしたか?「wp_cron」
週1・月1でやっていたサイト更新作業などなど、めんどくさいルーチンワークをcron登録して、メンテナンスコストの軽減にトライしてみてください!

スポンサーリンク

スポンサーリンク

この記事を書いた人

7Fを運営している株式会社コミュニティコムでプログラマーをしています。担当はWeb制作ですが、受付にもフワッと座ってます。呼称は「ゆーすけ」なので気軽に呼んでください。7F受付にあるチェックインシステムを作った人だったりします。好きなものはお酒です。でも痛風なのでビールは与えないでください!だんだん年齢に抗えなくなってきたので、イイ感じにできる運動があれば紹介してください。



メールマガジン登録

週1回程度でメールマガジンにて、コワーキングスペース7Fのイベントや勉強会情報や近況、Web関係や地域情報などを配信しています。
もし良ければ以下のフォームにメールアドレスを入力して登録してくださいね!

7F情報をぜひフォローください!


スポンサーリンク

月額会員募集中の申し込みフォーム
イベント情報
会議室ご予約
オープンスペースご予約
無料見学ご予約
お問い合わせ
メールマガジン登録フォーム
フロアマップ
よくある質問
Amazonコワーキングスペース7Fのほしい物リスト
一時託児施設利用
7F大学
リブライズ
Eightどこでもスキャン計画
7Fスタッフ募集のお知らせ
シェアオフィス6F
貸会議室6F

混雑状況やイベント情報

サイト内検索