質問: ランニング wp マルチサイトでのcronの正しい方法 私はwordpress multisiteにいくつかのサイトを持っています。 disable_wp_cronでwp-config.phpをtrueに設定しました。wgetまたはcurlを使用してクーロン・タスクを設定した場合、phpスクリプトを実行するための30秒のルールがあります。大量の電子メール通知を送信したりその他のことを行うのは非常に小さい(おそらくリモートsmtpサーバー接続が遅い、多分それは本当にbbpressからの電子メール通知の束または何か)。たぶん私たちはこのようなものを使うことができますか?php -q wp-cron.php しかし、それはmultisite内の1つのサイトに対してcronを実行するだけです(各サイトは異なるmysqlテーブルに独自のcronタスクを持っています)。p. s. wpmudev.orgフォーラム curlも使っている奇妙な "解決策"を見つけた。別のp. s. wp cliには素晴らしいwp cronコマンドがあります ただし、cronタスクを手動で実行することしかできません(--url attrを使用できます)。例えば:wp cron event list --url=multisite.com wp cron event list --url=subdomain.multisite.com
回答: これが私の解決策です:global $multisite_hosts; $multisite_hosts = array('xxxx.dev.xxx.oondeo.es','x2.dev.xxx.oondeo.es','x3.dev.xxx.oondeo.es'); function run_cron(){ global $multisite_hosts; $host=array_pop($multisite_hosts); if (!$host) return; register_shutdown_function('shutdown'); if (!isset($_server['http_host'])) { $_server['http_host'] = $host; // replace with primary host } require './wp-cron.php'; } function shutdown() { run_cron(); } run_cron(); これをcrontabから呼び出します。