繁体   English   中英

从 WP_Query 循环获取 WooCommerce 产品属性

[英]Getting a WooCommerce Product Properties from WP_Query Loop

我有一个使用 WP_Query 循环遍历产品帖子类型的函数。 在此功能中,我可以从帖子对象中获取产品帖子的永久链接、标题、图像等内容。 但是,对于循环中的每个产品,我需要访问产品对象,因为我想计算和显示评论评级。 我使用全局 $product 然后 $product->get_rating_count() 等来获取所需的数据。 然而,在调试另一段代码时,我发现众所周知的“ID 被错误调用”。 不应直接访问产品属性。 此函数的错误。

一切仍然有效(关闭调试),但我想确保它在 WooCommerce 的未来版本中仍然有效。 有谁知道我可以从 WP_Query 循环(即通过产品帖子类型循环)访问产品对象属性而不会出现此错误?

这是我的代码....

<?php
// Get the product rating
global $product;
if ( 'no' === get_option( 'woocommerce_enable_review_rating' ) ) {
return;
}
$rating_count = $product->get_rating_count();
$review_count = $product->get_review_count();
$average      = $product->get_average_rating();
if ( $rating_count > 0 ) : ?>
<div class="woocommerce-product-rating">
  <?php echo wc_get_rating_html( $average, $rating_count ); ?>
  <?php if ( comments_open() ) : ?>
  <a href="<?php echo get_permalink( $product->ID ); ?>#reviews" class="woocommerce-review-link" rel="nofollow">(
    <?php printf( _n( '%s customer review', '%s customer reviews', $review_count, 'woocommerce' ), '<span class="count">' . esc_html( $review_count ) . '</span>' ); ?>)
  </a>
  <?php endif ?>
</div>
<?php endif; ?>

任何帮助将非常感激! 干杯!

$product变量是WC_Product类的一个实例,它不同于WP_Post类。 您可以在此处阅读有关WC_Product API 的信息:

https://docs.woocommerce.com/wc-apidocs/class-WC_Product.html

在这种情况下获取产品 ID 的正确方法是使用get_id方法:

$product->get_id()

我想我需要睡一会儿......

今天早上再次看了这个之后,我可以看到一些东西,因为某种原因我以前在上釉。 我为产品的链接调用了 $product->ID,但当然现在应该是 $product->get_id()。 有了这个改变,它现在可以工作了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM