将常量添加到wp-config.php
defined(\'DISABLE_WP_CRON\') or define(\'DISABLE_WP_CRON\', true);
假设你有
config.yml
正确设置后,您可以操作
--path
调用时标记
cron run
.
<小时>
wp cron event run --due-now
[<hook>…]
要运行的一个或多个挂钩。
[--due-now]
立即运行所有到期的挂钩。
[--all]
运行所有挂钩。
至
run all due cron tasks 按顺序:
function run_crons_due_now_in_order { for SITE_URL in $(wp site list --fields=url --format=csv | tail -n +2 | sort); do wp cron event run --due-now --url="$SITE_URL" && echo -e "\\t+ Finished crons for $SITE_URL"; done; echo "Done"; }; run_crons_due_now_in_order;
如果希望它们同时运行(首先运行非站点特定的cron):
function run_all_crons_due_now { for SITE_URL in $(wp site list --fields=url --format=csv | tail -n +2 | sort); do wp cron event run --due-now --url="$SITE_URL" && echo -e "\\t+ Finished crons for $SITE_URL" & done; wait $(jobs -p); echo "Done"; }; run_all_crons_due_now;
您可能希望将任一选项放入可执行文件中
chmod +x run_all_wp_cron_events_due_now.sh
添加crontab任务
crontab -e
可能每分钟都会执行
* * * * * run_all_wp_cron_events_due_now.sh > /dev/null
如果要运行
custom command 从cron中,您可能需要指定
wp-cli 工作。
* * * * * cd /home/username/public_html; /usr/local/bin/php /home/username/wp-cli.phar your-custom-cron-commands run >/dev/null 2>&1
您需要在此处加载WordPress的唯一原因是从数据库收集URL,而不是使用预定义的列表。我们只会ping这些URL,我们并不真正关心响应是什么。
custom-cron.php
<?php
// Load WP
require_once( dirname( __FILE__ ) . \'/wp-load.php\' );
// Check Version
global $wp_version;
$gt_4_6 = version_compare( $wp_version, \'4.6.0\', \'>=\' );
// Get Blogs
$args = array( \'archived\' => 0, \'deleted\' => 0, \'public\' => 1 );
$blogs = $gt_4_6 ? get_sites( $args ) : @wp_get_sites( $args ); // >= 4.6
// Run Cron on each blog
echo "Running Crons: " . PHP_EOL;
$agent = \'WordPress/\' . $wp_version . \'; \' . home_url();
$time = time();
foreach ( $blogs as $blog ) {
$domain = $gt_4_6 ? $blog->domain : $blog[\'domain\'];
$path = $gt_4_6 ? $blog->path : $blog[\'path\'];
$command = "http://" . $domain . ( $path ? $path : \'/\' ) . \'wp-cron.php?doing_wp_cron=\' . $time . \'&ver=\' . $wp_version;
$ch = curl_init( $command );
$rc = curl_setopt( $ch, CURLOPT_RETURNTRANSFER, false );
$rc = curl_exec( $ch );
curl_close( $ch );
print_r( $rc );
print_r( "\\t✔ " . $command . PHP_EOL );
}
并向您的
custom-cron.php
在crontab中
* * * * * wget -q -O - http://your-site.com/custom-cron.php?doing_wp_cron