设计师刚开始用PHP寻找一个更优雅的解决方案
我试图创建一个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>
您试过运行以下代码吗?这只会在帖子有评论的情况下创建一个div,这意味着您不需要任何JavaScript来隐藏没有评论的div,因为它们不存在:
<?php
if ( get_comments_number() > 0 ) {
echo '<div class="commentbox">';
comments_number( 'no comments', 'one comment', '% comments' );
echo '</div>';
}
?>
注意comments_number()
函数的使用,这对于您想要根据单个或多个注释显示不同的值是有好处的。函数参考可以在这里找到
对顶部代码的清理(我认为这是您要求的)将是:
<?php
$commBox = get_comments_number();
if($commBox) {
echo "<div class='"commentbox'"> $commBox </div>";
}
?>
这只是检查$commBox是否为真(在PHP中0为假,非零数字为真),并删除不必要的echo ""
。
你可以创建一个have_comments()函数,只是有一个函数返回get_comments_number(),但我不确定这是必要的。
编辑:类似于:echo "<div class='"commentbox'"> $commBox comment" . ($commBox == 1 ? 's' : '') . " </div>";
应该显示"comments"如果有多于1条评论,"comment"如果有一条评论(尽管这是未经测试的)。