2011-06-17 103 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