【发布时间】:2011-10-11 09:59:53
【问题描述】:
我正在尝试使用 cmets_template() 标记在我的类别页面上的每个帖子之后显示内联 cmets。
但是,由于某种原因,cmets 或评论表单没有出现。相同的标签在内容单一页面上也能正常工作。
顺便说一句,我正在使用 WP 3.2.1 和 211 主题。
【问题讨论】:
标签: php wordpress wordpress-theming
我正在尝试使用 cmets_template() 标记在我的类别页面上的每个帖子之后显示内联 cmets。
但是,由于某种原因,cmets 或评论表单没有出现。相同的标签在内容单一页面上也能正常工作。
顺便说一句,我正在使用 WP 3.2.1 和 211 主题。
【问题讨论】:
标签: php wordpress wordpress-theming
cmets_template 以代码开头:
if ( !(is_single() || is_page() || $withcomments) || empty($post) )
return;
所以这只适用于帖子和单页。
您可以创建一个列出您的类别的页面,也可以使用 cmets_template。 或者使用get_comments 获取帖子的所有 cmets,然后手动循环它们并生成输出。您还可以设置全局变量 $withcmets,参见 sbrajesh 的回答。
【讨论】:
可以通过强制加载 cmets 来实现。您可以通过设置全局变量“$withcmets”来强制加载评论
例如,你可以把这段代码放在你的functions.php中
add_filter('wp_head','sb_force_comment');
function sb_force_comment( ) {
global $withcomments;
if(is_category())
$withcomments = true; //force to show the comment on category page
}
如果您在类别页面上使用 cmets_template(),它将在类别页面上显示 cmets 以及表单。
如果您不想在类别页面上显示评论表单,可以通过将以下代码放入您的functions.php中来实现
add_filter('comments_open','sb_fake_comments_closed_on_category',20,2);
function sb_fake_comments_closed_on_category ($is_open,$post_id){
if(is_category())
return false;
return $is_open;
}
【讨论】: