Hook/Cron Problem

时间:2013-11-20 作者:Juan Ignacio Medina

我的functions.php

<?php 
if ( !wp_next_scheduled(\'re-post2\') ) {
   wp_schedule_event( time(), \'hourly\', \'rep-post2\' );
}

function repostads() {
    global $wpdb;
 $querystr = "
    UPDATE $wpdb->posts 
    INNER JOIN $wpdb->repost
    ON $wpdb->posts.ID = $wpdb->repost.post_id
    AND $wpdb->repost.DIA_FINAL >= NOW()
    AND $wpdb->repost.ESTADO = \'OK\'
    SET $wpdb->posts.post_date = NOW()
     ";
}
add_action ( \'re-post2\', \'repostads\' );
     ?>
我尝试在示例页面中插入查询代码,效果很好,但当我插入functions.php, 它什么都没做。

2 个回复
SO网友:Krzysiek Dróżdż

你认为它应该做什么?

要么你只在这里发布了部分代码,要么它不能做任何有意义的事情。此函数所做的唯一事情是为变量赋值。永远不会执行此SQL查询,因为您不会在代码中的任何地方执行它。

我想你应该这样做:

if ( !wp_next_scheduled(\'re-post2\') ) {
   wp_schedule_event( time(), \'hourly\', \'rep-post2\' );
}

function repostads() {
    global $wpdb;
    $querystr = "UPDATE $wpdb->posts 
    INNER JOIN $wpdb->repost
    ON $wpdb->posts.ID = $wpdb->repost.post_id
    AND $wpdb->repost.DIA_FINAL >= NOW()
    AND $wpdb->repost.ESTADO = \'OK\'
    SET $wpdb->posts.post_date = NOW()";
    $wpbd->query( $querystr );
}
add_action ( \'re-post2\', \'repostads\' );
我在这里假设您的SQL查询是正确的。

SO网友:Pat J

你的邮件中有一个拼写错误$hook 这可能就是问题所在--\'re-post2\' 成为\'rep-post2\'wp_schedule_event() 呼叫

结束

相关推荐

如何确保wp-cron作业运行

我正在使用一个插件向一个相对较大的电子邮件列表发送电子邮件。因为我们的主机每小时发送电子邮件的阈值很低,所以我们必须使用插件中的设置,将电子邮件限制在每小时只有一定数量。我假设插件使用wp cron来实现这一点。我曾尝试在wp-cron上查找文档,但我能找到的唯一重要信息是它需要一个页面视图才能运行。问题:RSS提要是否被ping到足以触发“页面视图”,从而触发wp cron</wp cron将在页面视图后运行多长时间?(例如,如果最后一次查看页面是在下午6:59,cron是否会安排在晚上7点运行?