
WP-Cronの無効化
WP-Cronとは
WPには、予約投稿や自動更新という自動化機能が実装されていることはご存じの通りです。
このWPに実装されている自動実行の仕組みがWP-Cronです。
各ジョブには1時間に1回とか1日1回などの実行間隔が設定されており、時間が来れば自動実行される仕組みです。
しかしその説明は正しいようで正しくありません。
WPはPHPというプログラム言語で作られていますが、PHPは無限に動き続けることができません。
無限に動くようにプログラミングしても、仕様上、一連のプログラムは実行開始から2分で打ち切られてしまいます。
なので、指定時間が来たかどうかを監視することができないのです。
※監視プログラムはずっと動き続けている必要があるから
PHPのプログラムはずっと動き続けることができないので、また動かすためのきっかけが必要です。
WPでは『アクセス』をきっかけとして、サイト表示のついでにWP-Cronを動作させています。
つまり、アクセスが無ければ、設定時間が来ても何も起こらないのです。
Agent-Dでは自動記事生成、自動投稿、自動コメントなどが実装されていますが、
まだ立ち上げたばかりのサイトではアクセスがまったく無いので、まったく投稿されません。
それでは困るので対策します。
サーバーのcronへ移行
そこで、自動投稿の発動要因をアクセスではなく、サーバーのタイマー機能に変更してしまって、この問題を解決したいと思います。
サーバーのタイマー機能は、cron(クロン、クーロン)といいます。
指定時間になったら指定したプログラムを動かすというサーバーの自動実行機能です。
WPのWP-Cronを無効にして、サーバーにcronの設定をすることで、アクセスが無くても定期的にWPの各種自動機能が実行されていくようになります。
WP-Cronの無効化
本来はWPのテーマエディタ機能などを使って、PHPファイルをゴニョニョ書き換えて改造しなければいけないのですが、初心者にはハードルが高いため Agent-D では、プラグイン実行時に WP-Cronを無効化するようプログラムしています。
つまり、ユーザーは何もしなくても大丈夫!
プラスのメリット
余談になりますが、wp-cronはアクセスがある度に何か動かさないといけないプログラムは無いか確認します。
自動実行されるプログラムは記事の投稿だけでなく、テーマやプラグインの更新チェックなども行われます。
サイト立ち上げ時のアクセスが少ない時には「見送り三振」の連発、アクセスが殺到するようになったら「空振り三振」の連発になるのです。
アクセス毎にwp-cronを実行するのではなく、cronで定期的にwp-cronを実行するようにすることで、エンドユーザーがサイトを訪れてくれた際に余計な動作がなくなり、サイトの表示がスムーズになります。
重いWPサイトがかなりの軽量化になり、結果、訪問時の離脱防止にもなります。
cron(サーバー)設定
実はWP-Cronを無効化しても、アクセスによって、WP-Cronが実行されるのを停止しているだけで、WP-Cron自体が死んでいるのではありません。
WP-Cronは、wp-cron.phpというプログラムファイルが本体ですが、こいつにアクセスすることでWP-Cronが発動します。
つまり、サーバーのcronで、wp-cron.phpを発動させればいいのです。
設定方法
エックスサーバーでの設定方法はこちらです。

・「wp-cronの停止」はAgent-D側で制御しているので作業不要です。
・2分毎に1回、wp-cron.phpを実行するように設定してください。⇒ */2

これで、2分に1回 wp-cron.phpへアクセスし、WP-Cronを発動してくれます。
他のサーバー会社
こちらを参考にしてください。

2分毎に1回、wp-cron.phpを実行するように設定してください。

コマンドは色んな書き方があります。
当マニュアルとサーバー会社のマニュアルで書き方が違っている場合がありますが、お好きな方を書いてください。

