0
WordPress的瞬態
希望你可以幫我這樣的場景:動態生成的名稱作爲函數參數
我有不同的文章類型簡碼功能裏面的幾個查詢。 現在我試圖用瞬變來存儲這些查詢。 但是這些瞬變需要爲每個頁面調用shortcode的唯一名稱。
$trans_posts_golfcourse_ = 'trans_posts_golfcourse_'.$landingpage;
if(false === ($$trans_posts_golfcourse_ = get_transient('trans_posts_golfcourse_'))) {
$args = array (
'posts_per_page'=> 5,
'post__in' => $posts_golfcourse,
'post_type' => 'golfcourse',
'post_status' => 'publish',
'cache_results' => false,
);
$$trans_posts_golfcourse_ = new WP_Query($args);
set_transient('trans_posts_golfcourse_', $$trans_posts_golfcourse_, 60*60*4);
}
動態生成的變量名是
$$trans_posts_golfcourse_
但如何,這都看起來像作爲參數?:提前
get_transient('trans_posts_golfcourse_')
謝謝!
編輯:用於動態可變發現溶液作爲參數 參數(串)具有將要產生的方式作爲變量名相同:
get_transient('trans_posts_golfcourse_'.$landingpage)
完整代碼:
$trans_posts_golfcourse_ = 'trans_posts_golfcourse_'.$landingpage;
if(false === (${$trans_posts_golfcourse_} = get_transient('trans_posts_golfcourse_'.$landingpage))) {
$args = array (
'posts_per_page'=> 5,
'post__in' => $posts_golfcourse,
'post_type' => 'golfcourse',
'post_status' => 'publish',
'cache_results' => false,
);
${$trans_posts_golfcourse_} = new WP_Query($args);
set_transient('trans_posts_golfcourse_'.$landingpage, ${$trans_posts_golfcourse_}, 60*60*4);
}
編輯:瞬態不減少查詢,雖然瞬態似乎被正確調用。有人有想法嗎?
添加您的完整循環,一切都在瞬間內。看看[這篇文章](http://wordpress.stackexchange.com/a/160618/31545)我已經完成了[wordpress.se]。請注意,您應該創建一個字符串,而不是像示例中的數組,因爲簡碼不能返回數組,只是字符串 –
感謝Pieter!這是絕對正確的。我昨晚通過以下方式管理它: '\t $ transient_key ='trans_markers_'。 $ PAGE_ID; \t $ transient = get_transient($ transient_key); \t if(!empty($ transient)){return $ transient; } \t ...做...查詢 \t set_transient($時,$ transient_key,$ transient_time); \t return $ out;' – Funkateer
您應該將其作爲答案發布。評論中的代碼完全不可讀,因此在評論中毫無用處。 ;-) –