关于WordPress如何自制留言板,而不用插件,网上的文章已经非常多了。我之前也是参照网上的文章弄的,也就是做个模版来实现留言板。直接用一个普通页面当留言板也成,只是留言不能按照倒序显示。
后台管理里的设定虽然有倒序功能,但是是针对所有页面的,也就是说,你设置了按照倒序显示以后,文章页的评论也倒序显示了。这个就有点不太好了。所以推荐自制模版来实现。而网上的制作方法在实现倒序显示和评论分页两个功能上有点冲突。网上的解决办法步骤如下:
1、复制你所使用的主题下的 comments.php和single.php ,分别重命名为你想要的名字,如:gbcomments.php和guestbook.php
2、在guestbook.php文件头部添加以下代码:
<?php
/*
Template Name: Guestbook
*/
?>
3、修改guestbook.php里面的一句调用评论页面的代码:
把<?php comments_template() ?>改为
<?php comments_template(‘/guestcomments.php’,true) ?>
4、新建页面,选择模版Guestbook,OK,到这步为止,和你新建一个普通页面没有什么不同,那么,下面就是对这个留言板的定制部分了
5、找到gbcomments.php里面的<?php foreach ($comments as $comment) : ?>替换成:
<?php foreach (array_reverse($comments) as $comment) : ?>
实现留言板留言倒序显示。到这,就是网上流传的方法了。
但是对于第5步,倒序显示留言,现在新的主题里,并没有这一句代码,而大多采用<?php wp_list_comments(‘type=comment&callback=mytheme_comment’);?>来实现评论的分页嵌套调用。
因为从WordPress2.7起开始支持wp_list_comments函数。不用wp_list_comments函数,而用模版里自带的旧的循环查找显示评论代码,有两个缺点:一是不支持评论分页了,二是数据库查询量很大。
官方的代码文档里有wp_list_comments这个函数的描述:http://codex.wordpress.org/Template_Tags/wp_list_comments,里面是有个参数reverse_top_level来选择是否倒序的,而这个参数默认是在后台获取的,也就是你在后台设置里评论上的设置,是否倒序。但是如果你指定了这个参数的值,那么就是你所指定的值优先。那么,我们就可以传参让它倒序了,而因为我们是自己制作的一个模版,所以,又不会影响到其他的文章页评论!而且,使用wp_list_comments这个函数来打印评论,在后台设置的评论分页也就起作用了!
因此可以将上面的第5步进行修改,从而实现分页嵌套显示以及倒序排列的功能:
5、把gbcomments.php里的<?php wp_list_comments(); ?>
替换成
<?php wp_list_comments(‘reverse_top_level=1&type=comment&callback=mytheme_comment’);?>
至此,这个留言板,就支持倒序显示、评论分页。
参考:http://vlrat.cn/archives/359/comment-page-1
3 评论
添加评论