PHPは永続的に実行されるプロセスではありません。要求されたときにのみ実行されます。だから、私が知る限り、Wordpressは誰かがWebページをロードしたときにのみ自分自身を更新できます。しかし、更新プロセスは瞬間的なものではないため、サイトにアクセスするユーザーのページ読み込みは本当に遅くなります。
自動更新に使用する別のトリックはありますか?私はあちこちを検索しましたが、説明は見つかりませんでした。
ここで探しているシステムは「WP Cron」と呼ばれます。これは、WordPressのバックグラウンドプロセスシステムであり、通常の処理以外でイベントを発生させることができます。それらを開始するにはトリガーが必要ですが、バックグラウンドプロセスのためにページの読み込みを妨げることはありません。
はい、誰かがあなたのページをロードする必要があります。default-filters.phpファイルでは、次のコード行が見つかります。
add_action( 'init', 'wp_cron' );
そのため、ページがロードされるたびにwp_cron関数が実行されます。この関数はwp-includes / cron.phpで終了し、データベースでスケジュールされたイベントをチェックします。バックグラウンドで実行する必要があるプロセスがある場合、関数spawn_cronを呼び出します。
Spawn cronには2つの可能な操作方法がありますが、最初の最も一般的な方法は、wp_cron.phpのURLでwp_remote_post関数を呼び出して自分自身に接続を戻すことです。この追加のHTTP要求を作成することにより、別のPHPプロセスが開始され、すべての実際の作業が行われます。ここで行われるリクエストは非ブロッキングで、0.01秒のタイムアウトがあります。そのため、実際には結果が得られません。リクエストの目的は、単にバックグラウンドで新しいプロセスを開始することです。これが行われた後、それは単に戻るので、表示ユーザーには遅延がありません。
wp-cron.phpプロセスは、実際の作業、更新、その他すべてを行うものです。WordPressの多くのプロセスは、cronシステムによって処理されます。スケジュールされたポストパブリッシング、pingの処理、更新チェック、通常のフロー以外で発生する必要のあるものはすべてスケジュールし、必要に応じて実行できます。
ただし、プロセスを開始するには、サイトへの通常のヒットが実際に発生する必要があります。いいえ、WordPress.orgはサイトに直接アクセスして物事を開始することはありません。サイトを起動するには何らかの形でトラフィックを受け取る必要があります。どんな形のトラフィックでもかまいません。