wordpress自帶的緩存功能使用介紹
發(fā)布時間:2014-03-31 09:47:25 作者:佚名
我要評論
這里不是說的的使用緩存插件之類的東西,是關(guān)于如何利用wordpress自帶的緩存體系。很多時候,比如輸出最新評論、相關(guān)文章、讀者墻等地方, 基本是不需要實時更新的,然而每次打開頁面就會去數(shù)據(jù)庫里查詢一次
用靜態(tài)化當(dāng)然可以解決這些問題,不過對于流量不大的博客就沒必要了。 wordpress自帶有緩存體系,關(guān)鍵的函數(shù)你可以在wp-includes/cache.php或 Codex里查找到所有的函數(shù)。
你可以使用下列函數(shù)來實現(xiàn)添加緩存。
復(fù)制代碼
代碼如下:wp_cache_add($key, $data, $flag = '', $expire = 0)
相反的,要刪除緩存數(shù)據(jù)可以通過下面的方法實現(xiàn)。
復(fù)制代碼
代碼如下:wp_cache_delete($id, $flag = '')
提取緩存數(shù)據(jù):
復(fù)制代碼
代碼如下:wp_cache_get($id, $flag = '')
替換緩存數(shù)據(jù):
復(fù)制代碼
代碼如下:wp_cache_replace($key, $data, $flag = '', $expire = 0)
舉個例子,如果想輸出最新評論,可以先從緩存里讀取需要輸出的HTML,如果沒有,請求一次,成功后加入緩存,當(dāng)然時間可以控制。
我知道有很多最新評論,相關(guān)文章免插件輸出的方法,原理都一樣,可以自行改改,貼個我用的:
config.php里面添加
復(fù)制代碼
代碼如下:define('WP_CACHE', true);
如果你用了其它緩存插件,基本上這個就沒效果了。因為這些插件有類似的方法。
復(fù)制代碼
代碼如下:<?php
/**
* get recent comments
* @param unknown_type $args
* @return unknown_type
*/
function DeamworkRecentcomments($args='number=5&status=approve'){</p> <p> $cacheID = md5($args);
//有緩存就直接輸出
if($output = wp_cache_get('recentComments_'.$cacheID, 'Winysky')){
echo $output;
return;
}</p> <p> //$rcms = get_comments($args);
global $wpdb;</p> <p> $my_email = "'" . get_bloginfo ('admin_email') . "'";
//自動獲取博主郵箱
$rcms = $wpdb->get_results("
SELECT ID, post_title, comment_ID, comment_author, comment_author_email, comment_content
FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts
ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID)
WHERE comment_approved = '1'
AND comment_type = ''
AND post_password = ''
AND comment_author_email != $my_email</p> <p>ORDER BY comment_date_gmt
DESC LIMIT 10</p> <p>");</p> <p> //print_r($rcms);return;
if(empty($rcms)){
_e('沒有數(shù)據(jù)');
return;
}
//歷遍數(shù)據(jù)
$output = '';
foreach( $rcms as $rcm ){
$author = $rcm->comment_author;
//if($author =='admin'){continue;}
$content = DeamworkStriptags( $rcm->comment_content);
$the_title = get_the_title($rcm->comment_post_ID);
$s_excerpt = convert_smilies( DeamworkSubstr( $content, 200 ) );
$contents = '<span class=\'recentcommentslink_author\'>' . $author . '</span> <span class=\'recentcommentslink_on\'>on</span> <span class=\'recentcommentslink_title\'>' . $the_title . '</span><div class=\'recentcommentslink_excerpt\'>' . get_avatar($rcm->comment_author_email, 64). $s_excerpt . '</div>';</p> <p> $output .= '<li><div id="C_' . $rcm->comment_ID . '_d" style="display:none">' . $contents . '</div>' . '<a id="C_' . $rcm->comment_ID . '" class="recentcommentslink" href="' . get_permalink($rcm->comment_post_ID) . '#comment-' . $rcm->comment_ID . '" >' . get_avatar($rcm->comment_author_email, 32) . '</a></li>';</p> <p> }
//輸出后加入緩存
wp_cache_add('recentComments_'.$cacheID,$output, 'Deamwork');
echo $output;
}
最后,試試效果吧~
相關(guān)文章

CyberPanel安裝WordPress并配置偽靜態(tài)規(guī)則
下面教你如何在 CyberPanel安裝WordPress以及配置偽靜態(tài),需要的朋友可以參考下2023-12-27
這篇文章主要介紹了wordpress無法安裝更新主題插件的解決辦法,需要的朋友可以參考下2020-12-27WordPress必備數(shù)據(jù)庫SQL查詢語句整理
發(fā)現(xiàn)幾條比較實用的,適合 WordPress 實用的SQL語句。于是就趕緊收集分享出來了,需要的朋友可以參考下2017-09-23wordpress在安裝使用中出現(xiàn)404、403、500及502問題的分析與解決方法
wordpress是很多新手站長搭建個人博客最喜愛的程序,但是最近在使用WordPress的時候遇到了一些問題,所以想著將遇到問題總結(jié)分享出來,下面這篇文章主要給大家介紹了關(guān)于wo2017-08-11WordPress取消英文標(biāo)點符號自動替換中文標(biāo)點符號的優(yōu)雅方法
這篇文章主要介紹了WordPress取消英文標(biāo)點符號自動替換中文標(biāo)點符號的優(yōu)雅方法,需要的朋友可以參考下2017-04-04- 這篇文章主要給大家介紹了wordpress自定義上傳文件類型的方法,如WordPress默認(rèn)允許上傳 .exe 后綴名的可運行文件,那么我們怎么禁止用戶在WordPress后臺發(fā)表文章時上傳 .e2016-12-19
- 大家可能發(fā)現(xiàn)了當(dāng)實現(xiàn)了前端用戶中心,后臺控制面板就失去了作用,那么限制其他用戶進(jìn)入后臺控制面板就很有必要了!那么我們要怎么做呢?通過下面這篇文章分享的方法后,只2016-12-19
WordPress實現(xiàn)回復(fù)文章評論后發(fā)送郵件通知的功能
這篇文章主要介紹了WordPress實現(xiàn)回復(fù)文章評論后發(fā)送郵件通知的功能,涉及wordpress針對評論與郵件的相關(guān)操作技巧,需要的朋友可以參考下2016-10-11WordPress使用自定義文章類型實現(xiàn)任意模板的方法
這篇文章主要介紹了WordPress使用自定義文章類型實現(xiàn)任意模板的方法,可通過自定義文章類型來實現(xiàn)任意模版的使用,具有一定參考借鑒價值,需要的朋友可以參考下2016-10-11WordPress后臺地址被改導(dǎo)致無法登陸后臺的簡單解決方法
這篇文章主要介紹了WordPress后臺地址被改導(dǎo)致無法登陸后臺的簡單解決方法,簡單分析了后臺無法登陸的原因與相應(yīng)的解決方法,涉及針對wordpress配置項的簡單修改,需要的朋友2016-10-11


