在 WordPress 中使用 cron_schedules 来添加一个定时任务:
在 functions.php 文件的末尾添加以下代码:
function my_every_time( $schedules ) { $schedules['every_time'] = array( 'interval' => 10, 'display' => __('每隔一分钟') ); return $schedules; } add_filter( 'cron_schedules', 'my_every_time' );
以上代码使用 add_filter 将一个自定义的任务间隔 daily 添加到 WordPress 的定时任务列表中。interval 设置间隔时间,单位秒。
function my_every_time_task() { file_put_contents('filename.txt', "\n执行时间:".date('Y-m-d H:i:s', time()), FILE_APPEND); } add_action( 'my_every_time', 'my_every_time_task' );
定义了一个 my_every_time_task 的函数,然后使用 add_action 函数将该函数与一个自定义的事件 my_daily_event 关联起来。
if ( ! wp_next_scheduled( 'my_every_time' ) ) { wp_schedule_event( time(), 'every_time', 'my_every_time' ); }
使用 wp_next_scheduled 函数来检查是否已经计划了该事件。如果尚未计划,我们使用 wp_schedule_event 函数来将事件执行一次。
备注:
WP-Cron 是根据网站页面加载触发的,任务只会在一个用户访问该站点时执行。例如,如果您希望在上午 9:00 执行任务,但此时没有用户访问页面加载,则该任务将在下次访问时执行。并且由于 WP-Cron 在每次页面加载时都会检查 cron 作业,在高流量网站上,会导致服务器资源占用过多。
如果用户访问量比较低,想按时执行任务,就可以使用 cron 了,方法如下:
# 直接执行PHP文件 0,30 * * * * php -q /www/test.com/wp-cron.php # 请求链接 */15 * * * * root /usr/bin/wget -q --post-data '' http://test.com/wp-cron.php?doing_wp_cron -O /dev/null
在 wp-config.php 中添加 define('DISABLE_WP_CRON', true); 可以关闭 WP-Cron。
修改时间 2024-05-12
声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。