在没有WordPress cron作业的情况下,在日期更改时执行多个作业

时间:2013-09-11 作者:Sayed Taqui

我试着每天在我客户的网站上随机化几个不同页面上的帖子。因此,我编写了一个函数,它在日期更改时返回true,如果返回true,我将随机化post id并将其保存到数据库中,并在一天中使用相同的值,因此下面是我要做的,

function comi_date_change(){ 
    date_default_timezone_set(\'Asia/Kolkata\');
    $current_date = date(\'j F Y\');
    $comi_current_date = get_option(\'comi_current_date\');
    if($current_date == $comi_current_date){ 
        return FALSE;
    }else{
        update_option(\'comi_current_date\', $current_date );  
        return TRUE;
    }
}
当我将条件mocomi\\u date\\u chage()检查为true或false时,它只能工作一次,因为在该函数执行的那一刻,它会将当前日期保存到数据库中,其余的则返回false?我不想使用WordPress cron作业函数wp_schedule_event(), 有其他选择吗?

谢谢

2 个回复
SO网友:pixeline

在不使用cron的情况下,定期重复任务(但不是每次刷新页面)的另一种方法是使用持续一天的临时任务。它甚至可以帮助您的网站更快地显示其主页!!

瞬态是一种wordpress缓存html位的方法。它对于对数据库的复杂请求特别有用。使用transient,您可以执行复杂的请求,然后在给定的时间内将html输出存储在数据库中。因此,您可以运行函数,存储其输出并将其缓存X秒(一天=24*60*60秒=86400)。

下面是一个(简化的)你应该在头版上运行的示例。php模板。

// Get any existing copy of our transient data
if ( false === ( $special_query_results = get_transient( \'frontpage_random_posts\' ) ) ) {
    // It wasn\'t there, so regenerate the data and save the transient
     $special_query_results = new WP_Query( \'cat=5&order=random&limit=1&orderby=date\' );
     set_transient( \'frontpage_random_posts\', $special_query_results, 86400 );
}

// Use the data like you would have normally...
更多信息:http://wp.tutsplus.com/tutorials/getting-started-with-the-wordpress-transients-api-part-1/

SO网友:Sayed Taqui

因为我必须检查8个条件,这就是我现在所做的。

add_action(\'init\', \'comi_date_change\');
function comi_date_change(){ 
    date_default_timezone_set(\'Asia/Kolkata\');
    $current_date = date(\'j F Y\');
    $comi_current_date = get_option(\'comi_current_date\');

    if($current_date !== $comi_current_date){
        update_option(\'comi_current_date\', $current_date );            
        update_option(\'dc_home_mustview\', \'2\');
        update_option(\'dc_fun_mustview\', \'2\');
        update_option(\'dc_learn_mustview\', \'2\');
        update_option(\'dc_fun_subcat_one\', \'2\');
        update_option(\'dc_fun_subcat_two\', \'2\');
        update_option(\'dc_learn_subcat_one\', \'2\');
        update_option(\'dc_home_learn_subcat_two\', \'2\');
        update_option(\'dc_editors_picks\', \'2\');
        update_option(\'dc_home_factory\', \'2\');
    }
}
每次更改日期时,它会为每个键设置值2,然后我可以针对每个条件单独检查每个键。

$date_change = get_option(\'dc_home_mustview\');
if($date_change ==  2){
//do stuff
update_option(\'dc_home_mustview\', 1);
}
不同页面上的休息条件也是一样的。

结束

相关推荐

致命错误:调用Resturant插件文件Restaurants.php中的非对象上的成员函数update()

当我在wordpress中点击自定义帖子类型中的发布或保存按钮时,它会显示上述错误。我使用的是单一数据库(即gls),但该数据库共享两个站点的数据。问题是,每当我更新餐厅帖子时,单击“发布”或“保存草稿”按钮后,就会出现上述错误。请帮助我。。。这是我的密码function save_restaurant() { //start function save global $wpdb; global $gldb; global $pos