<?php
$max = 7; // number item to get global $wpdb;
$sql = "SELECT c.*, p.post_title FROM
$wpdb->comments c INNER JOIN
$wpdb->posts p ON (c.comment_post_id=p.ID) WHERE comment_approved = '1'

AND comment_type not in ('trackback','pingback') ORDER BY comment_date DESC LIMIT $max";
$results = $wpdb->get_results($sql);
$template = '%g <a href="%au">%an</a> on <a href="%pu#comment-%cid">%pt</a>';
$echoed = 0; foreach ($results as $row)

{ $tags = array('%ct','%cd','%g','%pt','%pu','%au','%an','%cid');
$replacements = array($row->comment_title,
$row->comment_date,get_avatar($row->comment_author_email,'32'),
$row->post_title, get_permalink($row->comment_post_ID),
$row->comment_author_url,
$row->comment_author,
$row->comment_ID); echo '<li>' . str_replace($tags,$replacements,$template) . '</li>'; $echoed = 1;
}
if ($echoed==0)
echo '<li>No comment found.</li>';
?>
</ul>

§

<?php $sql = "SELECT c.*, p.post_title FROM $wpdb->comments c INNER JOIN
$wpdb->posts p ON (c.comment_post_id=p.ID)
WHERE comment_approved = '1' AND comment_type not in ('trackback','pingback')
ORDER BY comment_date DESC LIMIT $max"; $results = $wpdb->get_results($sql);
$template = '%g <a href="%au">%an</a> on <a href="%pu#comment-%cid">%pt</a>';
$echoed = 0; foreach ($results as $row)

{ $tags = array('%ct','%cd','%g','%pt','%pu','%au','%an','%cid');
$replacements = array($row->comment_title,$row->comment_date,

get_avatar($row->comment_author_email,'32'),

$row->post_title, get_permalink($row->comment_post_ID),
$row->comment_author_url,
$row->comment_author,
$row->comment_ID); echo '<li>' . str_replace($tags,$replacements,$template) . '</li>';
$echoed=1; } if ($echoed==0) echo '<li>No comment found.</li>'; ?> </ul>

§

管理員頻道

要為管理員提供特製消息,我們可以利用 WPCandy 的代碼段:

<?php global $user_ID; if( $user_ID ) : if( current_user_can('level_10') ) : // admin-only stuff here.
endif;
endif; ?> 

在後台的信息中心,我們可以快速瀏覽到網站的總評論數、通過審核的評論數以及待審核的評論與垃圾評論。 現在我們可以用更方便的頁面模板來代替信息中心的這個功能:

<?php $num_comm = wp_count_comments(); ?>
Total Comments: <a href="<?php%20bloginfo('wpurl');%20?>/wp-admin/edit-comments.php?">
<?php echo $num_comm->total_comments; ?></a>
Approved: <a href="http://<?php%20bloginfo('wpurl');%20/span/ppspan?>/wp-admin/edit-comments.php?comment_status=approved">
<?php echo $num_comm->approved; ?></a>
Moderated: <a href="http://<?php%20bloginfo('wpurl');%20br%20/?>/wp-admin/edit-comments.php?comment_status=moderated">
<?php echo $num_comm->moderated; ?></a> Spam: <a href="http://<?php%20bloginfo('wpurl');%20/span/ppspan?>/wp-admin/edit-comments.php?comment_status=spam">

<?php echo $num_comm->spam; ?> </a>

wp_count_comments() 是一個可以返回多個評論統計數目的函數。 同時我們要為各個評論數字添加鏈接。

增加其它功能

最後,假設你找到一個很不錯的評論插件,而你希望把這個插件整合到頁面模板中。 這時無需添加其它代碼,只要在頁面上加入對插件的支持就可以了。 這裏我們以 Activity Sparks 插件為例,Activity Sparks 可以 「在邊欄顯示文章和/或評論動態的曲線圖」 。
通常插件帶有的 readme.txt 文件都會指導用户如何將插件添加到主題文件。 這個例子裏的代碼如下:

<?php if(function_exists('activitysparks'))

{ activitysparks(array('dataset'=>'legend','height_px'=>100,'width_px'=>600,'period'=>30, 'ticks'=>24)); } ?> 

function_exists() 函數檢查特定函數是否可用,這裏即 activitysparks 函數。當插件上傳並激活成功時,activitysparks 函數函數可用。 如果函數可用,顯示曲線圖。 如果函數不可用,頁面模板不顯示內容 (但仍能夠正常運行) 。

結果演示

頁面模板的演示結果在這裏。 這個演示稍微修改了文章中提供的代碼,主要為保證頁面 HTML 結構與網站其它部分一致。 Pastebin 上給出了頁面模板的完整代碼。

原文:How to Create a Comments Central Page Template in WordPress (譯文)