到了周末,终于有了点时间,继续完善主题一些地方。
首先还是《创建一个可设置cookie相关信息的内置Email联系表单》一文中提到的那个contact.php模板,在有cookie信息时,评论者信息时默认折叠的,然而如果提交邮件信息时如果有错误,会返回错误信息,但是此时评论者信息还是折叠隐藏的(比如如果邮件填错了,此时也不会看到相关错误提示),所以折腾了一下,如果提交信息有错误,评论者信息就不会折叠了,这样就会方便看到哪里出错了。
wordpress指定页面评论数
我设置每页评论数是50,但是在留言页我想让每页只显示20条评论。所以,在评论模板(comments.php)里找到回调函数部分
<?php wp_list_comments('type=comment&callback=SimPaled_comment'); ?>
利用wordpress的页面判断函数is_page(),参数为页面的标题或id,修改为
<?php if(is_page('Guestbook')) : ?>
<?php wp_list_comments('type=comment&callback=SimPaled_comment&per_page=20'); ?>
<?php else : ?>
<?php wp_list_comments('type=comment&callback=SimPaled_comment'); endif; ?>
其中就是留言页在调用函数时多了个per_page=20参数。
支持分页的楼层显示
之前是评论是加了楼层显示的,只是在第一层评论上显示楼层。文章页还好,我还没遇到分页的情况,但是今天无意间打开留言页,发现分页后楼层显示还是从#1开始。上网搜了一圈,并没找到相关信息,倒是发现有人写了如何给嵌套回复按时间顺序加上楼层,不过要是这么修改了那评论楼层也真够乱的。所以我没修改。
网上没信息就自己折腾吧,其实主要就是获取每页设置的评论数和当前所在的分页。于是在include/comment-template.php里发现了
//@return integer | 整型,current page,当前页数
get_query_var('cpage')
每页评论数更好获得
get_query_var('comments_per_page')
或
get_option('comments_per_page')
既然获得了每页设置的评论数和当前所在的分页,那么就可以在function.php里找到评论模板函数,在前面加上
/**
* @param $page_comment_count | 每页评论数
*
*/
global $commentcount;//设置全局变量
if(!$commentcount) {//初始化
$pagenum=get_query_var('cpage')-1;
//下面是针对我的主题,因为我的留言页是每页20条评论
$page_comment_count=is_page('Guestbook')?20:get_option('comments_per_page');
$commentcount = $pagenum * $page_comment_count;
}
然后在需要显示楼层的地方,调用
<?php echo ++$commentcount; ?>
即可。
如果也要只在第一层评论显示楼层数,则如此调用
<?php if ($depth == 1) : ?>
<?php echo ++$commentcount; ?>
<?php endif; ?>
当然,你可以给它加上相应的容器并赋予不同的样式,这个就要看你自己的主题了。 