上一篇文章我發了一個免插件調用最多評論文章的代碼,在讀者的評論里出現了兩種意見。一種傾向于支持把一些優秀的插件集成到主題里,省卻用戶的麻煩。一種傾向于在主題里保留對某些插件的支持,在發現該插件激活時自動加載。
我個人傾向于主題應該保持最大限度的精簡,但必須保持良好的插件兼容性。但有一些插件,各方面已經非常完善,并且在未來一定時間內也不會對新版本的WordPress出現兼容問題,我們則可以考慮把它集成到主題里。對于集成到主題里的插件,我們可以體會到一些好處:
1.可以自主整合插件所需的JS和CSS文件,減少HTTP請求;
2.在整合的過程中,你可以去除插件中你不需要的部分,減少垃圾可以令WordPress運行更快;
3.可以提高主題的易用性。
在這個系列的文章里,我將說說怎么把插件集成到主題里,我選用MG12出品的AJAX Comment Pager作為試驗品。這款插件的有點是簡單實用,源碼里注釋詳細。
正文
注意:如果你要按照這個教程試著折騰的話,請先備份你的主題,并且請確認你的主題支持按頁碼進行評論分頁。
步驟1
首先打開ajax-comment-pager文件夾里的ajax-comment-pager.php文件,這個文件就是整個插件的核心。我們可以看到細心的MG12對插件的每一個模塊都做了注釋。
我們要做的是先分析這個插件是怎么運行的,程序結構是怎樣的。
首先,根據注釋,我們可以發現程序結構如下圖:
下面解釋一下各個模塊的作用:
l10n:提供插件的本地化語言,在整合是可以忽略;
options:用于配置插件參數;
AJAX function:處理AJAX請求,并返回相應的結果,核心中的核心;
add to WordPress:加載插件運行所需的JS腳本和CSS樣式文件。
到這里,插件的運行機制已經呼之欲出。
首先由add to WordPress加載所需的文件->在點擊評論翻頁時發出AJAX請求->AJAX function模塊獲取options里的參數,處理AJAX請求并返回結果->add to WordPress事先加載的腳本把AJAX function返回的結果插入到評論列表位置。
步驟2
在充分了解插件的結構以后,我們開始提取所需的代碼,先把cpage_ajax和commentpager_head改名,我給這兩個函數名同意加上了“bolo_”前綴。這一步是為了避免和原來的插件產生沖突,改名的方法推薦先復制原來的函數名,改名后用新函數名全部替換原函數名。
接下來把ajax-comment-pager.css和ajax-comment-pager.js復制到主題文件夾里。水平高一點的童鞋們,在這一步就可以整合css和js文件了,如果你不會整合這兩個文件則需要在主題的header.php里加載這兩個文件,并且在加載ajax-comment-pager.js前需要先輸出以下代碼:
步驟3
把 AJAX function 模塊的所有代碼復制到主題的functions.php里,我們還需要修改一下。
我們的目的是直接把最適合我們主題的參數整合進去,所以options,callback method name 和 type 這幾部分都可以刪去,并充新補上$callback和$type這兩個變量。
$callback是自定義評論樣式的名字,一般是custom_comment,請自行查看主題配置。
$type是翻頁是需要顯示的內容,只顯示評論則是&type=comment,只顯示pingback則是&type=pings,兩者都顯示則留空。
在這里我設置為:
步驟4
在打開comments.php,在合適的地方加上:
如果你不知道什么地方是“合適的地方”,那就把這句代碼加到任一個</div>前吧。
后記
到這里為止,你可以發現主題集成的AJAX Comment Pager已經可以正常運行了。