こんにちは、Brownです。
WordPressで作ったプラグインや関数を定期的に自動実行させたいと考えたことはありませんでしょうか?
例えば毎日19時に自動で記事を投稿する関数を実行したい、という場合どのような実現方法があるのでしょうか。
今回は、WP-CrontrolというプラグインとIFTTTというアプリを使ってこれを実現する方法をご紹介します。
Contents
まずはWP-Crontrolをインストール&有効化
WP-Crontrolをインストール
プラグイン⇒新規追加から「WP-Crontrol」を検索し表示します。
「WP-Crontrol」をインストールします。
※下にかっこいいアイコンの「Advanced Cron Manager」というものがありますが、基本的に似たような内容のプラグインです。しかし個人的には「WP-Crontrol」の方が使いやすいのでオススメです。
インストール完了したら、有効化しておきましょう。
定期実行する関数をスケジュール登録する
まずは関数の作成
実行したい関数はお決まりでしょうか?今回は例として、画像のような内容の関数を実行させていきたいと思います。
この関数「function_name」には、記事を投稿する内容が書いてあります。
記事を投稿する関数についてはこちらにくわしく説明がありますのでご参照ください。
アクションの追加
画像のように、アクションを追加します。
add_action( 'function_name_for_crontrol', 'function_name' );
アクションを追加したらファイルを更新します。
この第一引数の「function_name_for_crontrol」を覚えておきましょう。
Cronスケジュールを登録する
設定⇒Cronスケジュールから、関数を登録していきます。
「Cron イベント管理」ページへ遷移します。
遷移先画面の下の方に「Cronイベントの追加」というタブがあります。
ここに関数を登録します。
まずは「フック名」について、ここには「function_name_for_crontrol」と入力します。
「引数」は空欄でOKです。
「次の実行」に、次に実行したい日付時刻を入力します。
「頻度」でどのように繰り返すのか、を選択します。
今回は、次の画像のように設定しました。
これで、毎日19時に記事が投稿されるように設定することができました。
WP-Crontrolの欠点
WP-Crontrolで設定するCron機能は、サイトへのアクセスがあって初めて実行されます。
つまり19時にCronスケジュールを設定していても、次のサイトへの初めてのアクセスが19:30だとしたら、19:30に関数が実行されるということです。
投稿時刻を19:00にしたい場合、これでは困ってしまいます。
ここで必要になってくるのが「IFTTT」というアプリです。
IFTTTでサイトに定期アクセス
IFTTTとは
IFTTTとは、簡単に説明すると時刻を指定して指定したサイトにアクセスすることができるというアプリです。
(このアプリには他にももっと多様な使い方があります。詳しくは公式サイトをご覧ください。)
スマホからのアクセスを想定していますので、IFTTTアプリをスマホからインストールします。
IFTTTをスマホにインストールし起動
起動したら「MyApplets」メニュー画面右上の「+」を押下します
「this」の部分をタップします。
Date&Timeをタップします。
任意の頻度を設定します。
「CreateTrigger」を押下しトリガーの設定が完了したら、続いて「that」をタップします。
アプレットの設定画面で「Webhooks」を選択します。検索画面で「web」と入力すれば出てきます。
「Make a web request」をタップします。
アクセスしたいサイトのURLを入力します。
入力できましたら、「Create action」ボタンをタップします。
ここまでできれば、設定完了です。
通知設定を問われますが、通知しない設定しておくといいでしょう。
WP-CrontrolとIFTTTで関数を時限実行する方法まとめ
設定できましたでしょうか。
改めて流れをまとめると、以下のようになります。
- 関数を作成する
- WP-Crontrolで関数実行をスケジュール登録する
- しかしサイトにアクセスがないと実行されない
- IFTTTで定期的にサイトにアクセスする
これにて、WP-CrontrolとIFTTTを使って関数を時限実行することができるようになります!
WordPressで作成した関数が自動的に実行されるような設定ができれば、完全手放しで運用できるようなサイトの構築も可能になりますね。