在Loop中获得WooCommerce星级评分

min*_*ind 2 php wordpress woocommerce

我有一个为WooCommerce商店页面构建的自定义模板,该模板按类别为不同部分提取产品。

我需要知道如何将每个产品的星级评定拉入循环。我花了几个小时进行的所有搜索都没有结果。

min*_*ind 6

我能够回答自己的问题。这是在循环中获取星级的方法。

首先使用以下代码:

    <?php if ($average = $product->get_average_rating()) : ?>
    <?php echo '<div class="star-rating" title="'.sprintf(__( 'Rated %s out of 5', 'woocommerce' ), $average).'"><span style="width:'.( ( $average / 5 ) * 100 ) . '%"><strong itemprop="ratingValue" class="rating">'.$average.'</strong> '.__( 'out of 5', 'woocommerce' ).'</span></div>'; ?>
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

确保在容器中包括css类:woocommerce,例如:

<ul class="woocommerce">
<li>
    <?php if ($average = $product->get_average_rating()) : ?>
    <?php echo '<div class="star-rating" title="'.sprintf(__( 'Rated %s out of 5', 'woocommerce' ), $average).'"><span style="width:'.( ( $average / 5 ) * 100 ) . '%"><strong itemprop="ratingValue" class="rating">'.$average.'</strong> '.__( 'out of 5', 'woocommerce' ).'</span></div>'; ?>
<?php endif; ?>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

此外,我结束了更改星星的大小和颜色的操作:

    .woocommerce {
        .star-rating {
      width: 110px !important;
      height: 30px !important;
      float: left;
      &:before {
        font-size: 20px;
      }
      span {
        &:before {
          font-size: 20px;
          color: #ffa500;
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)