WooCommerce:如何在搜索页面显示商品长描述?
解决WooCommerce搜索结果替换PDF展示代码为商品长描述的问题
嘿,我刚好处理过类似的WooCommerce自定义需求,给你一套靠谱的解决方案——既然你已经能隐藏那段PDF展示代码,那替换成商品长描述其实不用死磕模板文件,用WooCommerce的钩子就能轻松搞定:
方案一:用动作钩子(推荐,无需修改模板)
这种方法不用动主题模板,把代码加到子主题的functions.php或者自定义代码插件(比如Code Snippets)里就行,避免主题更新丢失修改:
确认已移除PDF代码的输出
你说已经能隐藏那段代码,这步应该已经完成了。如果是通过动作钩子添加的PDF展示功能,你应该已经用类似下面的代码移除了它(注意优先级要和原代码一致,通常是10):// 替换成原PDF展示函数的名称和优先级 remove_action('woocommerce_after_shop_loop_item_title', '原PDF展示函数名', 10);添加长描述的输出函数
把下面的代码添加进去,它会在搜索结果页面的商品标题后输出长描述:add_action('woocommerce_after_shop_loop_item_title', 'display_product_long_description_in_search', 11); function display_product_long_description_in_search() { // 仅在搜索结果页面生效 if (is_search()) { global $product; // 获取商品的长描述内容 $long_description = $product->get_description(); // 输出长描述,带段落格式和自定义样式容器 if (!empty($long_description)) { echo '<div class="product-search-long-description">' . wpautop($long_description) . '</div>'; } } }- 这里的
11是优先级,比原PDF代码的优先级高一点,确保长描述能在正确的位置显示 wpautop()会帮你保留长描述里的段落格式- 你可以通过
.product-search-long-description这个CSS类来自定义长描述的样式,比如字体大小、间距等
- 这里的
方案二:直接修改模板文件(如果钩子不生效)
如果你检查后发现PDF代码是硬编码在主题的WooCommerce模板里的,那可以这么做:
- 找到主题里的WooCommerce模板文件,通常是
wp-content/themes/你的主题/woocommerce/content-product.php或者archive-product.php - 找到那段输出PDF的代码,删除它
- 在相同位置插入下面的代码:
注意:修改模板时最好用子主题,避免主题更新覆盖你的修改<?php // 仅在搜索结果页面显示长描述 if (is_search()) { global $product; $long_description = $product->get_description(); if (!empty($long_description)) { echo '<div class="product-search-long-description">' . wpautop($long_description) . '</div>'; } } ?>
额外提示
- 如果长描述显示的位置不对,可以调整钩子的名称,比如换成
woocommerce_before_shop_loop_item_title(标题前)或者woocommerce_after_shop_loop_item(商品项末尾) - 如果某些商品没有长描述,代码会自动跳过输出,不会显示空容器
内容的提问来源于stack exchange,提问作者Esther de Vries
相关产品推荐
相关产品推荐

