WooCommerce 中是否有产品描述的简码
Is there a shortcode for product description in WooCommerce
是否有任何短代码可以调用产品描述(标题下的文本字段)?
目前,我正在使用另一个自定义字段来完成这项工作,但如果我使用 WooCommerce 字段会更好。
您可以通过这种方式构建自己的短代码:
add_shortcode( 'product_description', 'display_product_description' );
function display_product_description( $atts ){
$atts = shortcode_atts( array(
'id' => get_the_id(),
), $atts, 'product_description' );
global $product;
if ( ! is_a( $product, 'WC_Product') )
$product = wc_get_product($atts['id']);
return $product->get_description();
}
代码进入您的活动子主题(活动主题)的 function.php 文件。已测试并有效。
用法示例 [product_description]
1) 在当前产品页面ph:
echo do_shortcode( "[product_description]" );
2) 在提供相关产品 ID 的任何 php 代码中
echo do_shortcode( "[product_description id='37']" );
我写了一个与上面@LoicTheAztec 的回答非常相似的解决方案,但更具防御性(因为他的解决方案破坏了 Elementor 对我的编辑,因为它在保存时执行短代码时没有产品上下文)。
它还解决了您的 paragraph/newline 问题,因为内容在返回之前已格式化(基本上用 <p>
标记替换换行符)。
function custom_product_description($atts){
global $product;
try {
if( is_a($product, 'WC_Product') ) {
return wc_format_content( $product->get_description("shortcode") );
}
return "Product description shortcode run outside of product context";
} catch (Exception $e) {
return "Product description shortcode encountered an exception";
}
}
add_shortcode( 'custom_product_description', 'custom_product_description' );
是否有任何短代码可以调用产品描述(标题下的文本字段)?
目前,我正在使用另一个自定义字段来完成这项工作,但如果我使用 WooCommerce 字段会更好。
您可以通过这种方式构建自己的短代码:
add_shortcode( 'product_description', 'display_product_description' );
function display_product_description( $atts ){
$atts = shortcode_atts( array(
'id' => get_the_id(),
), $atts, 'product_description' );
global $product;
if ( ! is_a( $product, 'WC_Product') )
$product = wc_get_product($atts['id']);
return $product->get_description();
}
代码进入您的活动子主题(活动主题)的 function.php 文件。已测试并有效。
用法示例 [product_description]
1) 在当前产品页面ph:
echo do_shortcode( "[product_description]" );
2) 在提供相关产品 ID 的任何 php 代码中
echo do_shortcode( "[product_description id='37']" );
我写了一个与上面@LoicTheAztec 的回答非常相似的解决方案,但更具防御性(因为他的解决方案破坏了 Elementor 对我的编辑,因为它在保存时执行短代码时没有产品上下文)。
它还解决了您的 paragraph/newline 问题,因为内容在返回之前已格式化(基本上用 <p>
标记替换换行符)。
function custom_product_description($atts){
global $product;
try {
if( is_a($product, 'WC_Product') ) {
return wc_format_content( $product->get_description("shortcode") );
}
return "Product description shortcode run outside of product context";
} catch (Exception $e) {
return "Product description shortcode encountered an exception";
}
}
add_shortcode( 'custom_product_description', 'custom_product_description' );