每周运行一次wordpress查询


Run a wordpress query every week

大家早上好。正如标题所说,我正试图找到一种方法,每周运行一个wordpress查询,用本周的建议帖子更新我网站的一个部分。

环顾四周,我发现了wp_cron功能,它似乎是我想要的东西,因为我无法在服务器上设置cron作业。问题是我没能让它发挥作用。我在functions.php中创建了这个try函数

add_action( 'cron_hook', 'cron_exec' );
if( !wp_next_scheduled( 'cron_hook' ) ) {
   wp_schedule_event( time(), 'daily', 'cron_hook' );
}
function cron_exec() {
  echo time();
}

我在我的帖子页面上用以下代码调用该操作:

do_action('cron_hook');

这是我第一次尝试wp_cron,所以可能我错过了一些东西,但我希望每次刷新页面时都能得到相同的时间((,因为该函数应该每天启动一次,但每次刷新时我都有当前的时间戳。

我想知道我是否正确使用了wp_cron函数,在这种情况下使用它是否正确,或者有更好的方法来实现这个结果。

谢谢你的帮助,祝你今天愉快。

要每周执行cron,您需要这样的东西:

function custom_time_cron( $schedules ) {
    $schedules['every_week'] = array(
            'interval'  => 604800, //604800 seconds in 1 week
            'display'   => esc_html__( 'Every Week', 'textdomain' )
    );
    return $schedules;
}
add_filter( 'cron_schedules', 'custom_time_cron' );
add_action( 'my_cron_hook', 'my_cron_function' );
if (!function_exists('mytheme_my_activation')) {
    function mytheme_my_activation() {
        if (!wp_next_scheduled('my_cron_hook')) {
            wp_schedule_event( time(), 'every_week', 'my_cron_hook' );
        }
    }
}
add_action('wp', 'mytheme_my_activation');
if (!function_exists('my_cron_function')) {
    function my_cron_function() {
        echo time();
    }
}

第一个函数创建一个新的时间表,因为只有houlydailytwicedaily作为一个reccurance。

然后你设置你的时间表。您检查是否有!wp_next_scheduled的预定事件,如果没有,则安排事件

wp_schedule_event( time(), 'every_week', 'my_cron_hook' );

如果您已经初始化了具有特定名称的cron,则需要wp_clear_scheduled_hook才能对其进行重新调度。

希望这有帮助:(