一直以來,對WordPress唯一的不滿,就是希望他實現像pinxet那樣版主回覆的功能,但卻沒有這類的插件,WordPress也沒有自帶該功能。
其實我要的並不難,只是想要有以下這幾樣功能:
1.可以指定我要回覆的對象
2.只有管理者才能回覆留言
3.回覆的留言會出現在該篇留言的下方
4.留言樓層的計算不包含管理者的回覆。
5.回覆的留言會出現在側邊攔的「最新迴響」
6.不會計算版主回覆的留言數
如何?其實不難吧:P,但一直以來,都沒有看到類似的插件可以滿足我,而我也一直將這件事情擱著,直到前幾天靈光一閃,突然想到可以將我所使用過的各種留言呈現方式,結合在一起,做出我想要的功能。
於是乎,就趁這個週末動畫規劃了一番...
那麼想當然,一定是成功的啦!! (不然怎麼會寫出來呢:P )。有興趣的朋友,可以看看這篇文章的留言樣式,這完全就是我心目中100分的迴響樣式呢!!!
接著,要開始筆記我所有的想法,以及用到的功能:
一般來說,使用WordPress的部落客,常用的留言功能不外乎這三種(排除預設之外,帶有指定回覆的功能):一、使用Wordpress自帶的巢狀(嵌套)回覆;二、使用類似twitter的「@」指定回覆的人;三、手動修改每個留言者的內容,自行在底下加入版主回覆等文字。
第一跟第二種留言方式我都用過,第三種我不用的原因是,我不喜歡藉由編輯留言加上自己的回話,而且這樣版主回覆了,也沒辦法出現在側邊攔。至於第一種用了一陣子就沒在用了,因為我嵌套回覆會把迴響的區塊愈縮愈小,我也不主張在部落格一直討論回留言,而且以前覺得他的樓層沒辦法只針對主評論做計算。我最常用的是二種,點選「reply」的連結,可以直接在對話框出現「@+你要回覆的人名」,做一長串的回覆。
那如果是做成像pixnet那種版主回覆的樣子,我勢必要使用嵌套回覆,才能讓我的每篇回覆出現在「我針對的那個人的留言底下」,比如我回覆A先生,那麼我寫給他的留言,就會出現在他的留言的下面。可是我希望我的回覆是像pixnet一樣可以自己定義的、是特殊的、是與眾不同的,所以我用到了之前結合「@」的回覆,實現管理者留言高亮的語法;接著,因為我想要只有管理者才能使用嵌套留言,所以要判斷只有當管理者登入的時候,才會出現回覆的連結。不過因為這樣每一篇都回,側邊攔一定會被我的留言清單給洗掉,因此我又希望可以有一個功能是,當我回覆給A先生,系統會自動發信跟A說我回覆了。
(抱歉,以上我的廢話之心路歷程終於結束了)
這些構想在腦子形成之後,開始了我實現類pixnet版主回覆的步驟:(歡迎先看範例)
開啟巢狀留言功能
(這陣子發現我以前寫的WordPress2.7設定巢狀留言已經沒辦法閱讀了,所以這邊就WordPress3.0做個簡單的說明)
Step1.開啟header.php,在
<?php wp_head(); ?>前面加上語法:
<?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>
Step2.開啟comments.php,將
<?php wp_list_comments ....,替換成以下語法:
<?php wp_list_comments('type=comment&callback=custom_comments'); ?>說明:custom_comments 這個參數是用來對照functions.php的設定,可以更動並非寫死的,所以如果你的模板已經有callback,而callback並非custom_comments也沒關係,只要你的functions.php檔案有一樣的名稱即可。
Step3.同樣是comments.php,請在
<div id="respond">後面加上語法:
<div class="cancel-comment-reply"><small><?php cancel_comment_reply_link(); ?></small></div>說明:如果你的模板是標準模板,那麼一定會有這段語法。如果沒有的話,就在我提示的約略的位子加入即可。
Step4.開啟functions.php,在你要顯示「回覆」文字的連結地方,加入這段語法:
<?php comment_reply_link(array_merge( $args, array('reply_text'=> '回覆留言','depth' => $depth, 'max_depth' => $args['max_depth']))) ?>說明:回覆留言這四個字可以自行替換。
Step5.將所有檔案上傳到伺服器。
Step6.進入WordPress後台,在「設定」→「討論」的地方,請開啟巢狀留言的功能。
這樣步驟做完後,如果沒有意外,應該就會出現巢狀留言了。如果還是沒辦法使用巢狀留言,請先確認你的WordPress版本是不是3.0以上,並且將這些步驟重新檢查一遍看有沒有缺漏。檢查完還是有問題的話,可以留言問我,或者是到WordPress相關論壇詢問,謝謝。
管理員登入才能回覆留言
其實當你開啟巢狀留言時,登入後台,就可以直接在迴響的功能裡頭,回覆每一篇留言。如果你希望從後台留言的時候,也可以有表情符號選擇,可以參考這篇文章:WordPress之強化後台評論回覆頁面。
至於只有登入成為管理員後,才能在前台看到「REPLY」的連結,我是這樣寫的:
<?php global $user_ID; if( $user_ID ) : ?>
<?php if( current_user_can('level_10') ) : ?>
<?php comment_reply_link(array_merge( $args, array('reply_text'=> '回覆留言','depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
<?php endif; ?>
<?php endif; ?>
管理者留言高亮
再來,要自定義版主回覆的樣式,這個我以前就常在用了。有需要的朋友可以參考這篇文章:WordPress:高亮管理員的留言信息。我跟他的方法其實大同小異,不過因為他有完整的教學內容,所以我想大家可以直接照著做,有問題可以詢問原作者,謝謝。
只顯示主評論樓層
這是我參考的文章:只在WP主評論加上樓層號的方法(支持評論分頁),不過要使用這個方法的話,請先開啟評論分頁(後台→設定→討論)。如果你跟我一樣不想使用評論分頁的話,可以使用他提供的語法再做一點小修改,將$commentcount = $cpp * $page; 改成 $commentcount = 0; 即可。這邊要謝謝風痕影的幫忙:)。
不顯示管理者的評論數量
因為我希望只顯示真正評論的數目,同樣也是跟pixnet一樣啦!! 所以參考了這篇文章:WordPress 顯示真實的訪客評論數量。順便高亮一下,這個作者也超強的唷!!!!
回覆後使用郵件通知
最後,我希望回覆後,可以用郵件通知對方有新回應。本來是想直接用插件解決,但是剛好看到強大的Willin有提供免插件的方法:Comment Mail Notify。而且設定也非常的簡單,copy & paste 即可。
--
--
以上這些,就是我所使用的方法來實現pixnet版主回覆的功能。有興趣的朋友們可以照著做做看,不過要把留言改成這樣,要特別注意一件事情,就是如果你有使用「管理者留言高亮」的功能,到時候可能之前的留言,管理者的樣式都會變得頗怪異XD,所以請三思而後行。
當然,如果你想要永久使用這樣的回覆樣式,歡迎你試用看看:)。如果你們有更好的想法,也歡迎告訴我,謝謝!!

沒想到妳把她實現了