根据日期自动更新邮政分类

时间:2013-09-01 作者:Eckstein

我正在使用下面的函数根据当前日期将自定义帖子类型分类设置为某个术语。这适用于列出场馆即将举行、正在进行和未来活动的活动。

我需要根据当前日期自动更新分类术语。现在,这个函数只有在我进入帖子并单击update以便在save\\u post上运行时才起作用。

其他人提到我需要使用javascript来实现这一点,但说到js,我很笨。

功能如下:

//Set post_status based on the current date
function set_event_status($post_ID) {
    $start = strtotime(get_field(\'start_date\')); 
    $end = strtotime(get_field(\'end_date\'));
    $now = strtotime(\'now - 7 hours\');
    if ($start && $end) {
        if (($start <= $now) && ($end >= $now)) {
            $status = \'playing_now\';
        } elseif ($start >= $now) { 
            $status = \'opening_soon\';
        } elseif ($end < $now) {
            $status = \'closed\';
        }
    } elseif ($start) {
        if ($start <= $now) {
            $status = \'closed\';
        } elseif ($start >= $now) {
            $status = \'opening_soon\';
        } elseif ($start == $now) {
            $status = \'playing_now\';
        }
    } else {
        $status = \'closed\';
    }
    wp_set_post_terms( $post_ID, $status, \'event_status\' );
    return $post_ID;
}
add_action( \'save_post\', \'set_event_status\' );

1 个回复
最合适的回答,由SO网友:Hrvoje 整理而成

您只需要这样设置:

if ( ! wp_next_scheduled( \'check_event_status\' ) ) {
  wp_schedule_event( time(), \'daily\', \'check_event_status\' );
}

add_action( \'check_event_status\', \'set_event_status\' );
如果需要有关cron作业的一些调试信息,请安装调试栏插件并为其添加cron扩展,并且如果需要,可以手动删除。

结束

相关推荐

WP_Query in functions.php

我有一些代码要转换成函数。它工作得很好,直到我将其包装到所述函数中: $args = array( \'posts_per_page\' => -1, \'post_type\' => \'asset\', \'category_name\' => $cat ); $cat_query = new WP_Query( $args );