我正在尝试创建一个div,如果他们有评论,则只会显示在帖子旁边。唯一的 我可以开始工作的代码低于&这是通过创建两个变量,我觉得比我自己不需要更有经验的人,我只是不能用代码表达我正在寻找的东西。这是我使用php的第一周,所以我一直在谷歌搜索解决方案&只能找到用wordpress函数生成注释数的例子get_comments_number(); &安培;然后用javascript隐藏那些带有0的div,这对于一些如此微不足道的东西来说似乎过于复杂。
我喜欢更像下面的代码,尤其是它输出奇异的代码的方式。之后有多个评论文本,但我还不够称职。
非常感谢任何示例/建议
<?php
$b = 0;
$commBox = get_comments_number();
if($commBox <=$b) {
echo "";
}else{
echo "<div class=\"commentbox\"> $commBox </div>";
}?>
<?php if ( have_comments() ); ?>
<div class="commentbox">
<?php printf( _n( '1 comment;', '%1$s comments;', get_comments_number(), 'ves'),
number_format_i18n( get_comments_number() ) ); ?>
</div>
答案 0 :(得分:2)
您是否尝试过运行以下代码?如果帖子确实有评论,这只会创建一个div,这意味着你不需要任何JavaScript来隐藏它们,因为它们不存在:
<?php
if ( get_comments_number() > 0 ) {
echo '<div class="commentbox">';
comments_number( 'no comments', 'one comment', '% comments' );
echo '</div>';
}
?>
请注意使用comments_number()
函数,该函数对于根据单个或多个注释显示不同值的操作有用。可以找到函数引用here。
答案 1 :(得分:1)
清理顶级代码(我认为你要求的是:
<?php
$commBox = get_comments_number();
if($commBox) {
echo "<div class=\"commentbox\"> $commBox </div>";
}
?>
这只是基本上检查$ commBox是否为真(在PHP 0中为假,非零数字为真)并删除了不必要的echo ""
。
你可以通过一个返回get_comments_number()的函数创建一个have_comments()函数,但我不确定是否有必要。
编辑:像:
echo "<div class=\"commentbox\"> $commBox comment" . ($commBox == 1 ? 's' : '') . " </div>";
如果有多条评论,则应显示“评论”;如果有一条评论,则应显示“评论”(尽管未经测试)。