使用cron进行多个查询

时间:2014-11-08 作者:Guit4eva

如果我的single.php 文件(作为一个非常基本的示例):

<?php
$a = the_field(\'test1\'); ?>
$b = the_field(\'test2\'); ?>
$c = the_field(\'test3\'); ?>
$d = the_field(\'test4\'); ?>

$New_data = $a * $b * $c * $d;
?>
如何使用Cron计算$New_data 每天而不是每页刷新?在我读过的所有cron教程中,他们都说要使用wp_schedule_eventfunctions.php 文件,但我不知道如何应用,因为计算是基于正在查看的帖子,而不是全局计算。

如有任何建议,我们将不胜感激,敬请关注!

1 个回复
SO网友:Matt Keys

听起来你真正想要的可能是暂时的。WP瞬态是一种缓存查询结果并在该缓存上设置过期日期的方法。

因此,您可以将上面示例的结果缓存24小时。如果有人在缓存仍然有效的情况下请求该数据,它只会返回结果,而不会重新计算。

如果有人在您的缓存期限到期后请求数据,请再次进行计算,并将结果再缓存24小时。

示例:

if ( false === ( $special_query_results = get_transient( \'special_query_results\' ) ) ) {

    // It wasn\'t there, so regenerate the data and save the transient

    $a = the_field(\'test1\');
    $b = the_field(\'test2\');
    $c = the_field(\'test3\');
    $d = the_field(\'test4\');

    $special_query_results = $a * $b * $c * $d;

    set_transient( \'special_query_results\', $special_query_results, 24 * HOUR_IN_SECONDS );
}

// Use $special_query_results as needed from here
有关的更多信息WordPress Transients

UPDATE

根据您的进一步信息,您可能实际上需要一个CRON,下面是一个示例:

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

add_action( \'update_acf\', \'update_my_acf_field\' );

function update_my_acf_field() {
    // This is where you will do the logic that needs to be performed on a daily CRON
}

结束

相关推荐

管理菜单中的jQuery POST方法

我正在尝试使用这个:jQuery(document).ready(function(){ jQuery(\"#button\").click(function(){ jQuery.post(\"post_file.php\") }); }); 我的地址。com/wp管理员/管理员。php?页面=pluginname/pluginfile。php\\u pluginfunction但它打开的是:myaddress。com/wp管理员/