2011-06-17 105 views
1

我目前正在加载一个XML HTTP请求到一个数组,然后缓存它虽然有时我从网站拉数据是不是最可靠的,我回到空白页或没有填满一切。一种解决这个问题的方法我认为应该确保数组在数组中具有相同或更多的数据量,然后缓存一个小时。现在这是我的问题,当它没有数据我没有以前的缓存给我一个缓存变量的错误。我知道我是否理解缓存权利?我可以缓存一个变量,只有在给定的条件下才能覆盖? Anyhelp会很棒。我的想法是将数据存储在mysql中,然后在变量未通过时查询它。
if ($checksize>=8){ weather_result = wp_cache_get('my_result');
if (false == $weather_result) { $weather_result= $insert_array; wp_cache_add('weather_cache', $weather_result,$flag = '',$expire = 0); } }
PHP的WordPress的缓存XML变量

现在checksize只是一个数组,它数组中的元素数。我只想在它具有所有信息时更新它。

+0

您可以缓存任何你想看到的。如果你这样做,你可以做任何你想要的缓存。但是你应该保持简单的缓存。 – hakre 2011-06-17 07:49:59

+0

正确但是当我运行代码时,如果($ checksize> = 8) {weather_result = wp_cache_get('my_result'); if(false == $ weather_result){ \t $ weather_result = $ insert_array; \t wp_cache_add('weather_cache',$ weather_result,$ flag ='',$ expire = 3600); } } 然后如果它缓存一次,但下一次如果它不超过我需要的数量,它应该只是运行在前面的缓存 – Dan 2011-06-17 08:30:16

+0

丹,请添加代码和评论到您的问题。 – hakre 2011-06-17 08:34:21

回答

1

WordPress有一个用于缓存数据库的API,瞬态API。它易于使用,你可以要求增值税,被缓存。

$tag_cloud = get_transient('tag_cloud'); 
if (false === $tag_cloud || '' === $tag_cloud){ 
    $args = array('echo' => false); 
    $tag_cloud = wp_tag_cloud($args); 
    set_transient('tag_cloud', $tag_cloud, 60*60*12); 
} 
echo $tag_cloud; 

也是这个postcodex

+0

正确,但有了这个变量,我只想在条件满足时才重新缓存,但如果不满足,请保留以前的缓存。这会工作 – Dan 2011-06-17 08:45:17

+0

谢谢你这工作得很好。我很感激。 – Dan 2011-06-17 21:56:33