WP Super Cache 是我推薦的最佳 WordPress 緩存插件,它把整個(gè)頁(yè)面直接生成 HTML 文件,這樣 Apache 就不用解析 PHP 腳本,通過(guò)使用這個(gè)插件,能使得你的 WordPress 博客將顯著的提速。
但是如果 WordPress 的首頁(yè)顯示的不是最新日志,而是一個(gè)頁(yè)面,并且這個(gè)頁(yè)面包含實(shí)時(shí)更新的部分,那么就會(huì)存在一個(gè)問(wèn)題,那么這個(gè)頁(yè)面就不會(huì)實(shí)時(shí)更新。
這里我提供一個(gè)技巧,可以讓你在使用 WP Super Cache 的這個(gè)靜態(tài)緩存插件提速的同時(shí),也能夠讓首頁(yè)實(shí)時(shí)更新,WP Super Cache 是通過(guò) wp_cache_post_edit 這個(gè)函數(shù)來(lái)編輯緩存的,它的參數(shù)是日志或者頁(yè)面的 ID。
所以我們首先獲取用于顯示首頁(yè)的頁(yè)面的 ID,然后在日志更新或者刪除的時(shí)候,或者有新留言的時(shí)候(如果首頁(yè)沒(méi)有包含最新留言,這個(gè)可不必),刷新首頁(yè)。所以大致的代碼如下:
<?php
add_action('publish_post', 'refresh_front_page', 0); //發(fā)布或者更新日志時(shí)候刷新首頁(yè)
add_action('edit_post', 'refresh_front_page', 0); //有新留言或者留言被刪除的時(shí)候刷新首頁(yè)
add_action('delete_post', 'refresh_front_page', 0); //刪除日志時(shí)候刷新首頁(yè)
add_action('publish_phone', 'refresh_front_page', 0); //通過(guò) email 發(fā)布日志之后刷新首頁(yè)
function refresh_front_page(){
$front_page_id = get_option('page_on_front'); //獲取顯示首頁(yè)的頁(yè)面 ID
wp_cache_post_edit($front_page_id); //刷新該頁(yè)
}
?>
把這段代碼復(fù)制到主題的 functions.php 即可。
當(dāng)然如果你想刷新某個(gè)頁(yè)面,也可以是用 wp_cache_post_edit 這個(gè)刷新它,參數(shù)是頁(yè)面的 ID。
更多信息請(qǐng)查看IT技術(shù)專欄