gpt4 book ai didi

wordpress - 自定义 WP 日程事件

转载 作者:行者123 更新时间:2023-12-02 22:27:28 25 4
gpt4 key购买 nike

专家们,

目前,在我的 WordPress 插件之一中有一个 cron,它按照下面的时间表运行。wp_schedule_event( time(), '每小时', 'w4pr_cron' );我想将其更改为在特定时间范围内每 5 分钟运行一次。

对于例如如您所知,当前的代码将在一天中每小时运行一次。 (一天运行 24 次)。我希望它仅在上午 5:00 到上午 6:30(美国东部时间)之间每 5 分钟运行一次(一天运行 18 次)。

感谢任何帮助!

谢谢托马斯

最佳答案

首先创建一个自定义间隔,您可以找到有关此的更多信息here .

 add_filter( 'cron_schedules', 'cron_add_5min' );

function cron_add_5min( $schedules ) {
$schedules['5min'] = array(
'interval' => 5*60,
'display' => __( 'Once every five minutes' )
);
return $schedules;
}

确保您已取消安排插件注册的事件:

wp_unschedule_event( next_scheduled_event( 'w4pr_cron' ), 'w4pr_cron' );

接下来安排一个具有此重复间隔的事件在凌晨 5 点开始:

if( time() > strtotime( 'today 5:00' ) )
wp_schedule_event( strtotime( 'tomorrow 5:00' ), '5min', 'w4pr_cron' );
else
wp_schedule_event( strtotime( 'today 5:00' ), '5min', 'w4pr_cron' );

w4pr_cron 不是一个函数,而是一个附加了函数的钩子(Hook)。因此,您要做的是确保如果时间戳不在给定的时间间隔内,则调用此 Hook 时不会发生任何情况。因此,在functions.php或在每个页面加载时都会执行的地方,输入:

add_action( 'init', function() {
$start = strtotime( 'today 5:00' );
$end = strtotime( 'today 6:30' );
if( !(time() > $start && time() < $end) ) remove_all_actions( 'w4pr_cron' );
}

关于wordpress - 自定义 WP 日程事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14103262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com