Cronは、特定の時間、日付、または間隔でタスク実行(スクリプトまたはコマンド)をスケジューリングするための標準UNIXユーティリティです。 その実行するタスクは、クーロン・ジョブと呼ばれます。 推測できるように、cron ジョブの目的は、反復タスクを自動化して、時間をより生産的に使えるようにすることです。
しかし、WordPress cron ジョブは標準 cron とは若干異なるため、アクションやプロセスに飛び込む前に、WordPress cron とは何か、それがどのように機能するかを理解する必要があるのです。
- WordPressのCronとは何ですか?
- WordPressのcronジョブを管理する方法
- プラグインでWordPress Cronジョブ管理する方法
- Step 1: WP Control Plugin
- Step 2: View and Understand Cron Events
- Step 3: Edit Cron Event
- ステップ4:カスタム時間間隔の追加
- Step 5: 新しいcronイベントを追加する
- WP CLIでWordPress Cronジョブを管理する方法
- 本物のCronジョブ設定方法
- Step 1:Open and Edit wp-config.php File
- Step 2: 新しい cron ジョブをサーバーに追加
- 最後に一言!
WordPressのCronとは何ですか?
WordPressには、更新のチェック、投稿の公開スケジュール、ゴミ箱からのコメントの削除などのタスクをスケジュールするための独自のcronシステムがあります。 すべての cron ジョブは WP-Cron によって処理されます。
名前(および主なアイデア)は UNIX cron から来ていますが、WP-Cron はそのように動作せず、タスク スケジューリングのために間隔を使用します。 WordPressによって提供されるデフォルトの時間間隔は、1時間ごと、1日2回、毎日、および毎週です。 ここで、時間ベースのタスクは、ユーザーがあなたのサイトを訪問することに依存します。つまり、WP-Cronは、ユーザーがあなたのウェブサイトを訪問した場合にのみ実行されます。
言い換えれば、WP-Cronは、ページを読み込むときに実行されます。 時にはこれはそれほど信頼できるものではなく、そのため多くのユーザーは WP-Cron ジョブよりもサーバー レベルの cron ジョブを好みます。
この記事では、WordPress cron ジョブを管理する方法と、WordPress サイトの実際の cron ジョブをセットアップする方法を説明します。
WordPressのcronジョブを管理する方法
WordPressのcronジョブを設定し管理する方法はたくさんありますが、人気のある2つの方法を紹介します。
1つはWP Crontrolなどのcron管理プラグインを使って、WPダッシュボードから直接WordPress cronジョブを追加、変更、管理できるようにするものです。 また、cronジョブの作成、フックや関数の構築、タスクのカスタム時間間隔の定義も可能です。
そして2つ目の方法はWordPress CLIを使用します。
プラグインでWordPress Cronジョブ管理する方法
ここでは、WordPressアプリケーションのWP cronジョブを表示および制御できるWP Crontrolプラグインを使って説明します。 これは、WP cronジョブを処理するために使用される人気のあるプラグインであり、10万以上のアクティブなインストールがあります。
これは、WordPress cronジョブの管理の最も簡単な方法であり、あなたはすぐに表示、編集、作成、削除、およびWP cronイベントでより多くのことができるようにすることができます。
それでは始めましょう!
Step 1: WP Control Plugin
他のプラグインと同様に、プラグインリポジトリからWP Crontrolをインストールし、それを有効化する必要があります。
Step 2: View and Understand Cron Events
Next, you need to click Cron Events and you see the list of cron events that are running on your WordPress application.
From this section, you can run, edit, and delete your cron events.This section is a new option “Cron Events” in the Tools tab.With you see the new collection. また、これらのcronジョブに関する有用な情報を見つけ、どのcronジョブがどのような目的で使用されているかなどを迅速に識別できます。 最初の列で、HookはWordPressコアまたは任意のプラグインによって使用されるフックの名前を示しています。 例えば、”wp “という接頭辞は、単にWordPressコアのcronであることを示しています。 また、これらのクーロン・イベントを削除するオプションはありませんが、編集と今すぐ実行のオプションを使用することができます。 同様に、プラグインについては、他の接頭辞が使用されていることに気づくでしょう (たとえば、WooCommerce では “wc” または “woocommerce”).
2 列目の Arguments には、フック関数に渡される引数が含まれているだけです。
3番目の列は、このcronジョブが次にいつ実行されるかを示します。
4番目の列Actionは、このcronが実行するアクション(cronジョブの「機能」)を示します。
最後の列は、cronジョブの再帰タイミングを定義しています。 これは基本的にスケジュールされたタスクの時間間隔です。
Step 3: Edit Cron Event
さて、このプラグインをテストするためにWP cronジョブを編集しましょう。
フックの名前に移動して編集をクリックします。 新しいセクション「Edit Cron Event」がポップアップ表示され、異なるフィールドが表示されます。 私の場合、私は “wp_privacy_delete_old_export_files “フックを編集しました。
ステップ4:カスタム時間間隔の追加
次に、cronイベントのカスタム時間間隔を追加する方法を説明します。 これには、「Cronスケジュール」タブをクリックすると、新しい画面が表示され、スケジュールされた時間間隔の詳細が表示されます。 次に、一番下までスクロールすると、”Add Cron Schedule “が表示されます。
間隔の入力は、秒単位であることに注意してください。
これで、cronイベントを編集し、独自のカスタム間隔で置き換えることができます。
Step 5: 新しいcronイベントを追加する
さて、cronイベントの簡単なタスクを管理する方法はわかりましたが、WordPressアプリケーションに独自のcronジョブを追加したい場合はどうすればよいですか。
最初に、クーロンイベントの追加をクリックすると、クーロンセクションの追加に入ります。
次に、引数を追加します(任意です)私の場合は空白にしました。 そして次に、任意のオプションを選択し、次の実行のフィールドに時間を入れてください。 最後に、新しいクーロンの再帰時間(スケジュール時間)を選択し、イベントの追加をクリックします。
これに関して質問がある場合は、クーロンイベントから実行中のクーロンの設定を確認することができます。 アクションの欄には、None(エラー)と表示されていることに気がつくでしょう。 これは、このクーロンジョブのアクションが定義されていないためです。 したがって、テーマの functions.php ファイルに数行のコードを記述し、アクションを追加する必要があります。
Note: これ以上進む前に、WordPress サイトをバックアップすることを強くお勧めします。
ファイルを開き、<?phpの直後に次のコードの行を追加しましょう:
add_action( 'cloudways_new_cron', 'cw_function' );function cw_function() {wp_mail( '[email protected]', 'Cloudways Cron', 'Cloudways - a Managed Cloud Hosting!' );}
私のメールアドレスを自分のものに置き換えることを忘れないでください。
上の画像でわかるように、私はWordPressダッシュボードで直接編集しています。 ご希望であれば、FileZillaなどのFTPクライアントで編集することもできます。
次に、メールの受信箱をチェックして、メッセージが届いているかどうかを確認しましょう。
たっ!
たっ!と。 これで完了です。新しいcronイベントの追加に成功しました。
WP CLIでWordPress Cronジョブを管理する方法
また、WordPress CLIからすべてのWordPress cronジョブを表示および管理することができます。 Cloudwaysでは、ターミナルを起動し、サーバーの認証情報でログインする必要があります。
次に、WordPressアプリケーションのパスを配置します。 私の場合、URLは:
cd applications/urrghmpqks/public_html/
次に、このコマンドを実行する必要があります:
wp cron event list
フック名、次の実行時間、次の実行相対、再帰(スケジュール時間)を確認できます。
本物のCronジョブ設定方法
さて、WordPress cronジョブとは何か、その仕組みは分かりましたね。 トラフィックが少ない、特定の時間に実行する必要がある重要なタスク、過度の DDoS 攻撃、またはページ読み込み時間が長いなど、何らかの理由で本物の cron ジョブに置き換えたいとしたらどうしますか。
Step 1:Open and Edit wp-config.php File
FileZilla などの FTP クライアントまたは puTTY などの SSH クライアントを使用して wp-config ファイルを開くことがまず必要です。 その後、ファイルを編集し、次のコードの行を /* 以上と書かれている行の前に置いてください。 ブログの更新をお楽しみください。 */
Code:
define('DISABLE_WP_CRON', true);
このコードは、WordPress サイトで実行中の cron イベントを無効にし、本物の cron ジョブを作成できます。
Step 2: 新しい cron ジョブをサーバーに追加
Next, log in to your Cloudways platform then go to Application Management panel > Cron Job Management > Advanced section.に移動します。
次に、次のコマンドを追加し、[変更を保存]をクリックします。*/5 * * * * wget -q -O - 'https://wordpress-413270-1299955.cloudwaysapps.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
上記のコマンドでは、最初に、cronジョブの間隔を5分と定義しています。 タイムスケジュールの表現については、こちらのサイトで確認することができます。 私の場合、*/5 * * * *
がインターバル表現です。
おめでとうございます。
最後に一言!
この記事でWordPressのcronジョブがどのように機能するか理解できたと思います。 WordPressのcronジョブを管理する方法として、プラグインを利用する方法とWP-CLIを利用する方法の2つを説明しました。 また、ライブサーバー上で実際のクーロンジョブをセットアップする方法についても説明しました。