我想为我的WordPress网站设置服务器cron作业。这就是我到目前为止所做的
我将这一行添加到我的wp配置文件中。
define(\'DISABLE_WP_CRON\', true);
我添加了这个命令来设置cron作业。
wget -q -O - https://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
但我的cron函数不起作用。我以同样的方式在临时站点上设置了cron和php函数,它在另一台主机上的临时站点上工作
此live网站位于bluehost上,当我删除时,其默认电子邮件将被触发
>/dev/null 2>&1
从我的命令中进行测试,但此PHP函数不起作用
这是我在函数中的代码。php文件,该文件在临时站点上工作,但不在实时站点上。
function my_cron_schedules($schedules){
if(!isset($schedules["30min"])){
$schedules["30min"] = array(
\'interval\' => 30*60,
\'display\' => __(\'Once every 30 minutes\'));
}
return $schedules;
}
add_filter(\'cron_schedules\',\'my_cron_schedules\');
function schedule_my_cron(){
// Schedules the event if it\'s NOT already scheduled.
if ( ! wp_next_scheduled ( \'my_30min_event\' ) ) {
wp_schedule_event( time(), \'30min\', \'my_30min_event\' );
}
}
add_action( \'init\', \'schedule_my_cron\' );
add_action( \'my_30min_event\', \'job_expiration_schedule_hook\' );
function job_expiration_schedule_hook() {
$loop = new WP_Query( array( \'post_type\' => \'job_listing\', \'posts_per_page\' => 10, \'post_status\' => \'publish\') );
if ( $loop->have_posts() ) :
while ( $loop->have_posts() ) : $loop->the_post();
$ID = get_the_ID();
$job_post_meta = get_post_meta($ID, \'_job_expires\', true);
if ( !metadata_exists( \'job_listing\', $ID, \'_job_expires\' ) || empty($job_post_meta)) {
$job_published_date = get_the_time("Y-m-d", $ID);
$expire_date = date(\'Y-m-d\', strtotime($job_published_date. \' + 60 days\'));
update_post_meta($ID, \'_job_expires\', $expire_date);
}
endwhile;
endif;
}