【发布时间】:2016-05-11 23:05:58
【问题描述】:
尝试通过产品 ID 获取自定义模板上的产品数据,现在我有此代码来获取产品标题。
$productId = 164;
echo $p_title = get_the_title( $productId );
寻找简短描述、价格、产品图片、产品网址、产品品牌。或者可能是循环会更好,但该循环应该与产品静态 ID 一起使用。
提前致谢。
【问题讨论】:
标签: php wordpress woocommerce
尝试通过产品 ID 获取自定义模板上的产品数据,现在我有此代码来获取产品标题。
$productId = 164;
echo $p_title = get_the_title( $productId );
寻找简短描述、价格、产品图片、产品网址、产品品牌。或者可能是循环会更好,但该循环应该与产品静态 ID 一起使用。
提前致谢。
【问题讨论】:
标签: php wordpress woocommerce
创建一个新的产品对象可能会更好地为您服务。
$productId = 164;
$product = wc_get_product( $productId );
echo $product->get_title();
echo $product->get_price_html();
请注意,简短描述只是帖子的post_excerpt。如果在循环之外使用($post 是自动定义的),那么您需要直接获取帖子。
$post = get_post( $productId );
echo apply_filters( 'woocommerce_short_description', $post->post_excerpt );
或者,如果你已经定义了你可以做的产品对象
echo apply_filters( 'woocommerce_short_description', $product->post->post_excerpt );
因为 WooCommerce 产品类将自动使用 get_post() 定义 $product->post 属性。
apply_filters()表示此时可以附加函数来修改$product->post->post_content的内容。至少,我知道wpautop() 附加到woocommerce_short_description 过滤器以创建分段符。
【讨论】:
wc_get_product 不是一个类。它是一个包装函数,它使用WC_Product_Factory 类根据产品类型检索正确的产品类。因此,假设$productId 实际上是一个产品帖子类型,那么$product = wc_get_product( $productId ); 将返回一个产品类对象。