如何增添 threaded comments 功能

這個嵌套式評論(Threaded Comments)功能是在 2.7 時,才開始有的(內建)。那這個功能為何呢?我想我們觀看底下的圖片,應該就可以明瞭這個功能;沒錯,這個功能可以讓您回應他人的評論,然後其留言會呈現一層一層的嵌套。對於我這種不喜歡用外掛的人來說,實在是一大福音。

那我們應如何將此功能加諸於非 2.7 版本的佈景主題中呢?其實也不難,就拿 2.7 版本中,預設佈景主題的 comments.php 檔案來用就可以了。就該檔來說,相較於過往的檔案而言,這個檔案新的評論迴圈精簡了不少。

而這個 comments.php 檔案須注意的是,他有一個標籤對——

<div id="respond">...</div>

這個一定要有,而且還要一模一樣的 <div id="respond">,否則無法正常使用。

當我們有了新的 comments.php 檔案還是不夠的,我們仍須將以下的語法置於 header.php 檔案中的 </head> 之前

<?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>

上述都完成後,就可到後台評論的設定中來設定與啟用,如下圖所示:

再來就是需要樣式表來做美化的工作。每一層的 li 我們可以使用如 depth-1 的 class 名稱方式來設定;depth-1 表示第一層、depth-2 表示第二層,以此類推。例如:

li.depth-1 {
	border: 1px solid #ccddee;
	background-color: #ddeeff;
	}
li.depth-2 {
	border: 1px solid #c0d0e0;
	background-color: #eeffff;
	}
li.depth-3 {
	border: 1px solid #d0e0f0;
	background-color: #f0f0ff;
	}

變更頭像的大小:

打開 comments.php 檔案,然後於

<?php wp_list_comments(); ?>

之中,加入 avatar_size 這個參數。當中如有多個參數請用 & 來連接參數與參數,例如:

<?php wp_list_comments('type=comment&avatar_size=48'); ?>

另外,在使用這個功能來回應時,假設發生取消回應後,留言的區塊沒有回到所有評論的最底下時,那就表示不正常;這時請檢查您佈景主題 single.php 檔案中的

<?php comments_template(); ?>

語法,看看其親代元素(或父元素)是否有 <div id="content"> 這個標籤,並檢查其 id 名稱是否為 content(要一模一樣)。