一直以來,對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,所以請三思而後行。

當然,如果你想要永久使用這樣的回覆樣式,歡迎你試用看看:)。如果你們有更好的想法,也歡迎告訴我,謝謝!!

■ 文章資訊
人氣: 2,797
分類: wordpress技巧
文章標籤:
引用網址:

■ FACEBOOKs COMMENT:



■ EVERYBODYs COMMENT:
  • 1♥ 馬諦斯 (LV.37)

    沒想到妳把她實現了 :wink:

    2010.11.22 21:16
    • └ Re: muki (LV.1155)

      哈哈,我是說到做到的人!!!!

      2010.11.23 10:46
  • 2♥ Lay (LV.8)

    讚讚讚哪
    有空來用用看 :-D

    2010.11.22 22:01
    • └ Re: muki (LV.1155)

      歡迎歡迎,趕快一起用這樣的FU吧 :)

      2010.11.23 10:47
  • 3♥ 生蛋 (LV.3)

    專業好文!!
    這種留言方式最棒了
    如果有出外掛版本就好囉~!!

    2010.11.22 23:30
    • └ Re: muki (LV.1155)

      我也超喜歡這樣的留言方式~
      外掛版本的話,就看有沒有神人可以整合推出囉!!!

      2010.11.23 10:46
  • 4♥ Yuan (LV.13)

    哎唷,這個功能我很喜歡
    所以一定要推一下的阿XDD

    2010.11.23 10:19
    • └ Re: muki (LV.1155)

      謝謝你喜歡^^

      2010.11.23 10:47
  • 5♥ 希希 (LV.3)

    晚上回家試試看,不過之前的留言妳怎麼處理。
    回資料庫去弄?

    2010.11.23 11:05
    • └ Re: muki (LV.1155)

      之前的我就沒管它了 OTZ....
      我就是這種懶人(汗

      2010.11.23 11:27
  • 6♥ Yuan (LV.13)

    第三步那邊,我找不到div是respond的欸
    然後我失敗了(倒

    2010.11.23 22:30
    • └ Re: muki (LV.1155)

      那麼試試看搜尋<h3>Leave a Reply</h3>,在他的後面加上<div class="cancel-comment-reply"><small><?php cancel_comment_reply_link(); ?></small></div>看看吧。
      找不到Leave a Reply的話,就找找有沒有「寫下留言」之類的文字~

      (記得把全形的>、<,替換成半型的符號做搜尋)

      2010.11.24 21:39
  • 7♥ zwwooooo (LV.1)

    恭喜你成功了,哈

    2010.11.24 17:59
    • └ Re: muki (LV.1155)

      謝謝:)

      2010.11.24 21:41
  • 8♥ Paddy (LV.31)

    MUKI 好強阿!!

    2010.11.24 20:37
    • └ Re: muki (LV.1155)

      沒有你強阿,JQ達人

      2010.11.24 21:41
  • 9♥ Yuan (LV.13)

    muki,我想請問,我現在是用omegaB的佈景
    那迴響那邊出現?是正常的嗎@@
    然後,看來我還要多修煉一翻才行 :mrgreen:

    2010.11.26 12:59
    • └ Re: muki (LV.1155)

      你是說迴響「?」嗎...
      你的步驟是怎麼做的,可以大略說明嗎?還是卡在我之前回你的地方(找不到div是respond)呢?
      如果是的話,你可以把div那段加上這句的後面:
      <?php comments_number('comment', 'comment(1)', 'comments(%)' );?></div>

      2010.12.03 20:36
  • 10♥ 香腸 (LV.51)

    果然是學姊~ 這篇文章真得很棒

    可以列為我下次要變更版型的修正方案XDDD

    2010.11.27 21:23
    • └ Re: muki (LV.1155)

      期待看到你的作品XD
      不過這個修改幅度很大就是了....
      可能要一鼓作氣 哈

      2010.12.03 20:37
  • 11♥ 第三眼 (LV.2)

    请问如何获取feedburner的订阅数?想要纯数字,而不是feedburner关于订阅数量的小图片~

    2010.11.30 19:49
  • 12♥ 獨夜 (LV.11)

    這大好!!!

    2010.12.12 16:44
  • 13♥ 男兒深 (LV.1)

    請問 :?: :!: 如果我要訪客留私密留言,有辦法嗎??

    2010.12.14 18:02
    • └ Re: muki (LV.1155)

      照理來說是可行的,因為我都是東拼西湊塞了一堆外掛。
      所以只要找到可以支援訪客私密留言的外掛丟進來應該是可以!

      2010.12.17 09:42
  • 嗯不错,学习了

    2010.12.15 11:10
  • 15♥ 佬9 (LV.1)

    嘿!好有個性的博客!也有好多我要學習的知識! :wink:

    2010.12.30 22:02
  • 16♥ 風痕影 (LV.38)

    樓上以前如果是用外掛達成嵌套的話,主要是資料表中紀錄上層迴響的欄位名稱不同導致的。如果你會看會改資料表的話,可以找找 _wp_comments 中原本紀錄用的是哪個欄位,用 SQL 語法把裡頭的數值複製到 comment_parent 這個欄位即可

    用之前記得先備份...免得覆蓋錯誤就毀了 = =|||

    對了 MUJI,要不要介紹一下 custom_comments 怎麼寫,或者連去哪篇教學啊 XD 因為我發覺 [免費的喘息] 那邊有幾位朋友看了教學後卡在 Step4 ...|||

    2011.01.12 01:19
    • └ Re: muki (LV.1155)

      我可能要再找一下有沒有相關教學...
      不過你說喘息有人卡住,是哪一篇阿@@

      2011.01.12 09:59
  • 17♥ 風痕影 (LV.38)

    奇怪?!那位 Username 的留言為什麼會永遠排在最後方 = =?

    2011.01.12 01:21
    • └ Re: muki (LV.1155)

      不知道是不是ID錯位XDDDD

      2011.01.12 10:00
  • 18♥ 風痕影 (LV.38)

    他的 ID 是 13217...沒錯啊 0A0?!應該在前面說...

    我又看了一下原始碼,赫然發覺一件事:
    Username 的留言底下的板主回應,不是真的第二層,而是第一層
    是以前用外掛達成造成的嗎 0.0?看來是因為這樣才亂掉。

    --

    突然發覺我把 MUKI 打成 MUJI (無印良品) 了 (掩面

    --

    至於那篇喘息的文章,是 這篇 啦 !!
    不過已經有人在裡頭教怎麼寫 callback function 了 XD
    或許 MUKI 可以考慮連他的教學文章哈哈

    2011.01.13 00:12
  • 19♥ 丫头 (LV.1)

    你好,想问一下,像你这样,管理员回复不显示头像而显示MUKI'S REPLY的是怎么实现的?你在comment.php里是怎么设置的呢?我也想像你这样~

    2011.01.26 09:25
    • └ Re: muki (LV.1155)

      你可以嘗試在我寫的「管理者留言高亮」的地方做修改。
      那邊是針對管理者留言有不同的樣式,謝謝。

      2011.01.26 22:09
  • 20♥ alan (LV.4)

    "剛剛我的回覆內容:謝謝喔~我也很喜歡這種回覆的樣式
    另外這裡的回覆有表情 是怎麼弄的呢?
    我也想要!(不好意思 我很貪心! :mrgreen: "

    這應該會出現在最高樓層 可是實際上沒有!是bug嗎?

    2011.04.06 19:32
    • └ Re: muki (LV.1155)

      是的,不知道為什麼,只有這一篇文章的留言會有這種狀況...
      我也找不出原因。
      回覆的表情,其實wordpress相關外掛很多,你可以搜尋wordpress 表情符號,網路上應該很多教學!!

      2011.04.15 09:58
  • 21♥ 亞佬 (LV.1)

    敬佩大師本領超强! 現有事請鼎力匡助,望日後有更多合作商機!
    在下一非牟利,非商業,中英分版社交網站,以歷史懷舊主題,要文章,論壇,展示。用者可tag,讚彈,投票,評級,巢狀留言及上載儲存視頻和照片。現已有網站架構及22+佈景設計PSD檔,要調整插件功能配合面版。裝Wordpress-BuddyPress配60+插件雛型:www.hitecholdings.com
    專案報酬請開價,歡迎電郵或轉介其他愛徒,高手,同業至 aaaaaq@gmail.co, kylo@msn.com
    佇候回覆,再致謝意!
    亞佬

    2011.06.11 15:04
  • 22♥ Username (LV.2)

    這樣其實會有問題...

    2010.12.02 12:49
  • 23♥ Username (LV.2)

    以前有嵌套的迴響好像就壞掉了(其他文章看到的)

    2010.12.02 12:53
  • 24♥ muki (LV.1155)

    我在文章裡頭就有註明之前的迴響會有問題唷
    不過我為了想要實現這個夢想,就只好犧牲之前的迴響樣式

    2010.12.03 20:37

  • ■ LEAVE YOUR COMMENT:



      :wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: