Php 从WP_查询循环获取产品属性
我有一个函数,它使用WP_查询循环遍历产品帖子类型。在这个函数中,我可以从post对象中获取产品帖子的内容,如permalink、标题、图像等。但是,对于循环中的每个产品,我需要访问product对象,因为我想计算和显示评论评级。我使用全局$product,然后使用$product->get_rating_count()等来获取所需的数据。然而,在调试另一段代码时,我发现众所周知的“ID”调用不正确。不应直接访问产品属性。此函数出现错误 一切都仍然有效(调试已关闭),但我想确保它在WooCommerce的未来版本中仍然有效。有人知道我可以在WP_查询循环(即通过产品post类型循环)中访问产品对象属性而不会出现此错误吗 这是我的密码Php 从WP_查询循环获取产品属性,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我有一个函数,它使用WP_查询循环遍历产品帖子类型。在这个函数中,我可以从post对象中获取产品帖子的内容,如permalink、标题、图像等。但是,对于循环中的每个产品,我需要访问product对象,因为我想计算和显示评论评级。我使用全局$product,然后使用$product->get_rating_count()等来获取所需的数据。然而,在调试另一段代码时,我发现众所周知的“ID”调用不正确。不应直接访问产品属性。此函数出现错误 一切都仍然有效(调试已关闭),但我想确保它在WooComm
<?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\u product
类的一个实例,它不同于WP\u Post
类。您可以在此处阅读有关WC\u产品的API:
在这种情况下,获取产品ID的正确方法是使用get\u ID
方法:
$product->get_id()
我想我需要一些睡眠
今天早上再看一遍,我可以看到一些东西,因为某种原因,我以前一直在上釉。我正在调用$product->ID以获取产品的链接,但现在它当然应该是$product->get_ID()。有了这个改变,它现在开始工作了。所以不用“global$product”,只需使用$product->get_id()?@ChrisHawkins我想你仍然需要global$product
来使用$product
变量,但是如果你不想使用它,你也可以使用$product=wc_get_product($product_id)
。它会给你同样的结果。是的,我也尝试过使用wc_get_product(),但结果是一样的。WooCommerce抱怨我直接访问产品。