2017年02月22日   WordPress, 码农之路   2,925 次浏览
我们可以看到很多WordPress主题的评论都是按日期排列的,那么最新的评论就被显示到最下方去了,这样非常的不友好,那么怎样将WordPress评论按日期倒序排列呢?
首先,我们需要了解一点,其实WordPress后台已经提供了设置评论排序的方式。进入后台“设置->讨论”菜单,有个“在每个页面顶部显示新的/旧的评论”选项,这个选项就是用来设置评论显示顺序的。
其次,需要当前所使用的主题支持,一般可以通过下面这几种方法让主题支持评论排序(打开评论相关代码所在的文件comments.php):
1、如果你使用了wp_list_comments函数,类似如下的代码,则表示当前主题已经支持评论倒序了:
wp_list_comments( array(
'style' => 'ol',
'short_ping' => true,
'avatar_size'=> 34
) );
2、如果你是自定义评论的样式,有类似如下的代码:
foreach ($comments as $comment) {
// 对每条评论进行处理
}
此时修改后台的设置是没有效果的,需要我们写代码来改变成评论的顺序,通过查找wp_list_comments函数的源代码我们可以发现以下代码:
// Ordering of the listed comments. Default null. Accepts 'desc', 'asc'.
if ( null === $r['reverse_top_level'] )
$r['reverse_top_level'] = ( 'desc' == get_option('comment_order') );
对,没错,我们可以通过get_option(‘comment_order’);得到后台的评论排序的配置。最后,我们可用最简单的方法实现评论倒序,如下:
// 在使用comments变量之前加入以下if语句
if ( 'desc' == get_option('comment_order') ) {
$comments = array_reverse($comments);
}
foreach ($comments as $comment) {
// 对每条评论进行处理
}
好了,大概就是这样了,知其然亦知其所以然。
>>> Hello World <<<
这篇内容是否帮助到你了呢?
如果你有任何疑问或有建议留给其他朋友,都可以给我留言。