如何在WooCommerce商店页面自定义位置添加归档描述区块?
WooCommerce商店页描述移至网格上方的解决方案
问题原因
你之前的短码实现出错,是因为woocommerce_product_archive_description()函数本身是直接echo输出内容,而短码要求函数返回字符串。直接调用这个函数时,echo的内容会在短码解析流程中提前输出,导致内容跑到文档最顶端,而非短码放置的位置。
正确实现步骤
1. 移除原位置的商店描述
确保移除动作在合适的钩子触发,比如init:
add_action( 'init', 'remove_default_shop_description' ); function remove_default_shop_description() { remove_action( 'woocommerce_archive_description', 'woocommerce_product_archive_description', 10 ); }
2. 创建正确的短码函数
使用输出缓冲捕获原函数的echo内容,转换成短码所需的返回值:
add_shortcode( 'shop_description', 'custom_shop_desc_shortcode' ); function custom_shop_desc_shortcode() { ob_start(); // 开启输出缓冲 woocommerce_product_archive_description(); // 执行原函数,输出被缓冲捕获 return ob_get_clean(); // 返回缓冲的内容,让短码在指定位置输出 }
3. 在模板中添加短码
在archive-product.html模板里产品网格的上方位置,添加短码:
[shop_description]
这样就能把商店描述准确放到产品网格上方,而不会跑到文档顶端。
内容的提问来源于stack exchange,提问作者user500665
相关产品推荐
相关产品推荐

