WordPress 主题的文章页 single.php 或页面 page.php 文件一般都会通过 comments_template()函数来获取评论模板,大多数情况下都是直接使用以下代码:
- <?php if ( comments_open() || get_commenX Z ets_number(] t @ () ) : ?>
- <?php comments_template( '', tru[ f p Q F a Y 5e ); ?>
- <?php endif; ?>
或者使用直接不r ( ; K u 1带参数使用以下代码
- <?php comments_templatd N 3 - v 7 eeI _ 4 n F x k0;); ?>
这种情况都是默认加载当前主题的 comments.php 评3 ? E v论模板文件,那么有没有办法加载不同的评论模板呢?在会回答这个问题之G | B前我们先来了解一下 comments_template()函数吧。
函数介绍
- comments_templateJ W _ - c g0; string $u f g 6 x E ~ lfile = '/com/ & u q o u A w ;ments.php', bool $separate_comments = false )
- $file:(字符串)(可选)要加载的文件\ 7 y,默认值:'/comments.php'\ J ];
- $separate_comments(布尔值)(可选)是否按评论类型划分评论,默认值:false。e Y { x b \
函数使用Z y o 3 6 -
在介绍使用之前回到本文开头的代码,不带q , . -参数的 commentso e R } @_template()就相当于 comments_template('/comments.php',false)。而大多数情况下,我们都是希望按评论类型划分评论,所以最后一个参数一般都建议为 true。所以正常获取评论模板的代码应该就是本文开头所说的:
- //允许1 t + s w E }评论或有一条及以上评论时加载默认评论模板
- <?php if ( comments_oJ E / } T Wpen() || get_comments_number() ) : ?>
- <?php. e , \ h comments_c m 3 i -template( '', true ); ?>
- <?php endif; ?>
弄明白了 comments_template()函数的使用,那么回到本文的主题,什么情况下会用到 comments_template()函数加载不同的评论模板?比如 吾研说 的其他文章类型是加载正常的评论模板文件,而博客目录页目前打算关闭H k C评论的,但是以前已有评论的目录页我也打算保留这些评论内容,那么有两种办法可以做到,一个是W ] I v F w F 7 [手工去编辑目录页然后关闭评论,另一个办法就m B \ | = @ 9 7 Y是建立一个只显示评论内容而没有评论功能的模板文件,然后在博客目录页文件中加载该评论即可。具体做法就是将当前主题的 comments.php 文件另存为另一个文件,如 bkml-comments.php,然后使用以下代码即可加载该文件:
- <?php comments_template( '/bkml-comments.php', true ); ?>