comments_template
comments_template 函數是一個調用評論模板的函數,使用起來很簡單,與get_header()等函數一樣,是一個include文件類函數,今天來講一下他的使用。
描述
上面已經講過了,就是調用評論模板的一個函數。
使用
<?php comments_template( $file, $separate_comments ); ?>
其中
$file 需要調用的文件名 默認值: /comments.php
$separate_comments 是否分隔不用類型的評論 布爾型 默認值: false
講的比較籠統,更深層次請往下看
使用實例
<?php comments_template(get_post_format().'-comment.php', true ); ?>
這樣,就可以根據你不同的文章類型去顯示文章評論了。
用法上是不是跟get_template_part()有點類似呢?
至於$separate_comments准確的意思,我也沒搞明白,不過官方默認主題一直都是true的所以我也就跟進了。之前研究過一次,貌似這裡指的類型是是否回復的意思。
wp_list_comments
wp_list_comments 函數是一個循環輸出當前文章或頁面每個評論的函數,在 WordPress 主題中主要被用來輸出每一條評論,省去我們手工便利之苦,也把 WordPress 的評論功能很好的進行了模塊化。
wp_list_comments函數在主題中配合comments_template函數聯合使用可以很好的將 WordPress 的評論功能獨立出來,而且可以更好對評論嵌套層數、每頁顯示評論數量、評論樣式等等等等進行控制。所以如果你想做好主題的話,那還是看一下吧。
描述
英文原文:
Displays all comments for a post or Page based on a variety of parameters including ones set in the administration area.
我的理解:
用一個整體設置的參數來顯示一篇文章、頁面的所有評論。
用法
<?php wp_list_comments( $args ); ?>
參數使用
<?php $args = array( 'walker' => null, 'max_depth' => , 'style' => 'ul', 'callback' => null, 'end-callback' => null, 'type' => 'all', 'page' => , 'per_page' => , 'avatar_size' => 32, 'reverse_top_level' => null, 'reverse_children' => ); ?>
$walker 自定義樣式類名
$avatar_size 頭像大小 Default: 32
$style 評論容器標簽可以是 ‘div', ‘ol', or ‘ul',默認值是'ul',如果不是,那你需要像如下那樣明確寫出。
<div class="commentlist"><?php wp_list_comments(array('style' => 'div')); ?></div>
或
<ol class="commentlist"><?php wp_list_comments(array('style' => 'ol')); ?></ol>
$type 顯示何種評論,參數可以是 ‘all'、'comment'、'trackback'、'pingback'、'pings'. ‘pings' 包括'trackback' 和 ‘pingback'.
默認值: ‘all'
$reply_text 回復按鈕的文本值,這個較少用不解釋 默認值: ‘Reply'
$login_text 登錄按鈕的文本值,這個較少用不解釋 默認值: ‘Log in to Reply'
$callback 評論顯示的回調函數,即顯示評論主題的函數名稱
$end-callback 應該是循環結束後的回調函數,本人未實測,請自行探索。
$reverse_top_level 布爾值,如果設置本參數為真,則先顯示最新一條評論,後面的評論按照後台設置顯示。
$reverse_children 布爾值,如果設置本參數為真,則先顯示最新一條有子評論的評論,後面的評論按照後台設置顯示。
實例
這裡是官方默認主題 twentyeleven 中的評論顯示演示,
具體其他的參數請參照以上介紹自行演示探索。
<ol class="commentlist"> <?php /* Loop through and list the comments. Tell wp_list_comments() * to use twentyeleven_comment() to format the comments. * If you want to overload this in a child theme then you can * define twentyeleven_comment() and that will be used instead. * See twentyeleven_comment() in twentyeleven/functions.php for more. */ wp_list_comments( array( 'callback' => 'twentyeleven_comment' ) ); //twentyeleven_comment 函數在主題文件 "twentyeleven/functions.php"中定義。 ?> </ol>