如何在WooCommerce商店及商品归档页价格后添加PHP代码
WooCommerce商店/归档页价格后添加CFS字段的实现方法
方法一:使用WooCommerce原生钩子(优先推荐)
WooCommerce在商品归档/商店页的商品循环中,预留了woocommerce_after_shop_loop_item_title动作钩子,商品价格默认以优先级10挂载在这个钩子上,我们只需要把自定义输出代码以更高的优先级(比如15)挂载到这个钩子,就能保证内容显示在价格后方。
这个钩子仅在商品循环列表中生效,不会触发单个商品详情页的内容输出,完全匹配你的需求。
操作步骤:
- 进入网站后台,打开「外观-主题文件编辑器」,选择当前使用的主题(推荐提前切换到子主题,避免主题升级丢失自定义代码),找到
functions.php文件 - 在文件末尾添加以下代码后保存:
add_action( 'woocommerce_after_shop_loop_item_title', 'output_cfs_namecode_after_loop_price', 15 ); function output_cfs_namecode_after_loop_price() { // 二次校验排除单商品页,避免特殊主题逻辑导致代码误加载 if ( is_product() ) { return; } // 增加类存在判断,避免Custom Field Suite插件被禁用时网站报错 if ( function_exists( 'CFS' ) ) { echo CFS()->get( 'name-code' ); } }
方法二:覆写WooCommerce模板文件(适合需要自定义排版的场景)
如果你需要给输出的CFS字段添加专属HTML标签、调整周边元素排版,可以选择模板覆写的方式:
- 路径准备:在当前主题/子主题的根目录下,新建层级目录
/woocommerce/loop/ - 复制核心模板:找到WooCommerce插件自带的模板文件,路径为
wp-content/plugins/woocommerce/templates/loop/price.php,把这个文件复制到刚才新建的woocommerce/loop/目录下 - 修改复制后的模板文件:打开
price.php,在价格输出的代码末尾(即价格HTML闭合标签之后)添加以下代码:
<?php if ( function_exists( 'CFS' ) ) { echo CFS()->get( 'name-code' ); } ?>
注意:绝对不要直接修改WooCommerce核心插件目录下的原模板文件,下次插件版本更新时所有修改都会被覆盖,必须放到主题对应目录下做覆写。
方案选择建议
- 仅需要单纯输出CFS字段内容,优先选第一种钩子方案,兼容性最强,不受主题模板调整影响
- 需要自定义字段输出的样式、排版,再选择第二种模板覆写方案
内容的提问来源于stack exchange,提问作者Alex Phạm
相关产品推荐
相关产品推荐

