個人認為 WordPress 的 Widget(小工具)非常的強大,一般的WordPress博客,Widget側邊欄都會用到最新文章、最新評論、友情鏈接等,對文章之類的進行了緩存,但是側邊欄那?可能很少有人注意到(用靜態頁面緩存方法除外),為了讓你的WordPress站點飛起來,對Widget 建立緩存也是必不可少的,眾所周知WP-Cache、WP Super Cache和W3 Total Cache這幾款插件都是可以加速網頁的顯示,也就是對文章之類的頁面進行緩存.
今天介紹一款插件,可以緩存WordPress的側邊欄(SideBar),同樣起到加速頁面顯示的作用,wp widget cache這款插件就是對側欄的widget進行緩存,提高側欄widget的加載速度,這樣就不至于日志加載完還要等待一段時間來加載側欄widget.
wp widget cache插件功能特點:
支持設定時間更新緩存數據
支持定義促發事件(例如:發布一篇文章)自動更新緩存數據
支持對用戶指定的邊欄widget進行緩存處理(例如:你可以只緩存最新文章widget,但不緩存隨機文章widget)
安裝設置簡單,無須添加和修改源代碼(比WP-Cache安裝簡單多了)
wp widget cache插件安裝:
下載wp widget cache插件,然后解壓上傳插件到/wp-content/plugins/下的文件夾(通過后臺安裝也可).
到WordPress管理后臺插件頁面激活插件,激活后插件后,即可使用.
在后臺的管理頁面的“設置”-->“WP Widget Cache"中,對這個插件進行相關的設置,如下圖:
當然,如果你不想使用插件的話,你也可以參考如下代碼直接利用 Widget Class 里的 update_callback()方法進行數據緩存.
- class Test_Widget extends WP_Widget {
- // 注冊 Widget
- function register() {
- register_widget('Test_Widget');
- }
- // 構造函數
- function __construct() {
- $widget_ops = array('classname' => 'test_widget', 'description' => __( '測試掛件') );
- parent::__construct('test_widget', __('Test Widget'), $widget_ops);
- }
- // Widget 主體輸出
- function widget( $args, $instance ) {
- extract( $args );
- // 如果緩存已經過期,則重新生成結果
- if(false === get_transient($args['widget_id'])) {
- // 運行結果緩存 1 小時
- set_transient($args['widget_id'], $data, 3600);
- } else {
- echo get_transient($args['widget_id']);
- }
- //......
- }
- // 保存 Widget 參數
- function update( $new_instance, $old_instance ) {
- $instance = $old_instance;
- // 更新參數時刪除已有的緩存
- delete_transient($this->id);
- //......
- return $instance;
- }
- // Widget 設置面板
- function form( $instance ) {
- //......
- }
- // 下面這個函數是新增加的,用來刪除緩存
- function update_callback($widget_args = 1) {
- // 刪除緩存
- delete_transient($this->id);
- delete_transient($this->id);
- // 調用原來的 update_callback() 方法,防止出錯
- parent::update_callback($widget_args);
- }
- }
|
新聞熱點
疑難解答
圖片精選