WooCommerce“加入购物车”按钮改“查看产品/阅读更多”及文本异常排查
解决WooCommerce产品列表按钮文本显示异常的问题
嘿,咱们来搞定你的WooCommerce产品列表按钮显示“Button”而不是“阅读更多”的问题!你的跳转功能正常,说明链接逻辑没问题,问题大概率出在按钮文本的设置环节——要么是添加自定义按钮时没明确指定文本,要么是代码参数用错了。结合你提供的移除默认按钮的代码片段,我给你梳理排查方向和解决方案:
可能的问题根源
- 你添加自定义按钮的函数里,没有明确设置按钮文本内容,WooCommerce自动用了默认的“Button”文本
- 可能是钩子使用或参数传递有误,导致自定义文本没被正确渲染
完整的修正代码
直接用这套代码替换你现有的相关逻辑,既能移除默认“加入购物车”按钮,又能显示“阅读更多”并跳转产品详情页:
/* 1. 移除产品列表页的默认加入购物车按钮 */ function remove_loop_add_to_cart_button() { remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); } add_action( 'init', 'remove_loop_add_to_cart_button' ); /* 2. 添加自定义"阅读更多"按钮,跳转至产品详情页 */ function add_custom_read_more_button() { global $product; // 获取产品详情页安全链接 $product_link = esc_url( get_permalink( $product->get_id() ) ); // 输出带正确文本的按钮,同时保留主题默认样式 echo '<a href="' . $product_link . '" class="button product_type_simple add_to_cart_button">' . __( '阅读更多', 'woocommerce' ) . '</a>'; } add_action( 'woocommerce_after_shop_loop_item', 'add_custom_read_more_button', 10 );
关键修正说明
- 用
__( '阅读更多', 'woocommerce' )明确设置按钮文本,既保证显示正确,还支持多语言适配(如果你的站点需要的话) - 保留了WooCommerce默认的按钮类名,这样按钮会继承你主题的样式,不会出现样式错乱
- 用
esc_url()处理产品链接,符合WordPress的安全编码规范,避免URL风险
额外自查点
如果你之前已经写了添加按钮的函数,检查这几点:
- 是不是不小心把按钮文本写死成了“Button”?
- 是不是忘记输出自定义文本,或者文本拼写错误?
- 钩子的优先级是否和被移除的默认按钮一致(默认是10),优先级不对可能导致文本被覆盖
内容的提问来源于stack exchange,提问作者Amber
相关产品推荐
相关产品推荐

