我们知道,在WordPress的留言系统里,访客留言、pingback以及trackback是混在一起的,如果一篇热门文章的留言和引用都非常的多,这样势必造成留言板块过于沉长,既不利于阅读也不美观。如果把pingback以及trackback从留言中抽离出来,单独列表,访客就能更容易阅读文章的留言了。

话不说多,具体做法请看下面步骤,注意操作前先备份原来文件

(一)修改你的主题内的functions.php文件(如果没有该文件就自己新建一个即可),加上如下代码:

<?php
function get_ping_type($trackbacktxt = ‘Trackback’, $pingbacktxt = ‘Pingback’) {
$type = get_comment_type();
switch( $type ) {
case ‘trackback’ :
return $trackbacktxt;
break;
case ‘pingback’ :
return $pingbacktxt;
break;
}
return false;
}
?>

(二)修改你的主题内的comments.php文件:

第一步:

查找这一句:

<ol>

在它的上面添加以下语句:

<?php /* Seperate comments and pings */
if ( $post->comment_count > 0 ) {
$countComments = 0;
$countPings = 0;
$comment_list = array();
$ping_list = array();

foreach ($comments as $comment) {
if ( ‘comment’ == get_comment_type() ) {
$comment_list[++$countComments] = $comment;
} else {
$ping_list[++$countPings] = $comment;
}
}
}
?>

<?php /* Check for comments */ if ( $countComments > 0 ) { ?>

接着在它的下面有以下一句

<?php foreach ($comments as $comment) : ?>

把它替换为:

<?php foreach ($comment_list as $comment_index => $comment) { ?>

第二步:

文件内查找: </ol> 这一个标记,这与上面第一步查找的语句形成封闭。

</ol> 上面查找下面一句:

<?php endforeach; /* end for each comment */ ?>

把它替换为:

<?php } /* End foreach comment */ ?>

第三步:

接着在 </ol> 下面添加一段:

<?php } /* end comment check */ ?>

<?php /* Check for Pings */ if ( $countPings > 0 ) { ?>

<h4>Trackbacks/Pingbacks</h4>

<ol>
<?php foreach ($ping_list as $ping_index => $comment) { ?>
<li>
<?php comment_author_link() ?> »
<?php if ($comment->comment_approved == ‘0’) : ?>
<em>你的留言正在等待审核,谢谢。</em>
<?php endif; ?>
<?php printf(‘<span>’ . get_ping_type(__(‘Trackback’), __(‘Pingback’)) . ‘</span>’)?> on <?php comment_date(‘Y/m/d’) ?> <?php comment_time() ?>

<!–如果你要显示pingback以及trackback的内容,请在这里加入–>

</li>
<?php } /* end foreach ping */ ?>
</ol> <!– END #pinglist –>


<?php } /* end ping check */ ?>

然后就OK啦,具体效果可以参照本站留言板块。

发表评论

您的电子邮箱地址不会被公开。