急切的PHP新手请求关于wordpress代码的建议


eager php newb requesting advice on wordpress code

设计师刚开始用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"如果有一条评论(尽管这是未经测试的)。