如何完全禁用WooCommerce短描述?不使用CSS的实现方法
嘿,我给你几个纯代码实现的方案,完全不用CSS就能彻底禁用WooCommerce的短描述,覆盖从后端编辑到前端显示的全场景:
1. 从后端移除短描述输入框(根源禁用)
如果想让管理员根本没法添加短描述,直接把产品编辑页面的短描述输入框删掉就行。把下面的代码加到主题的functions.php文件或者自定义插件里:
// 移除产品编辑页面的短描述输入框 add_action( 'add_meta_boxes', 'remove_product_short_desc_metabox', 99 ); function remove_product_short_desc_metabox() { remove_meta_box( 'postexcerpt', 'product', 'normal' ); }
这样打开产品编辑页,就再也看不到短描述的输入区域了,从源头阻止内容输入。
2. 禁止前端所有场景显示短描述
如果之前已经有产品添加过短描述,需要确保前端完全不显示,不管是单个产品页面还是店铺列表页,用下面的代码:
// 移除单个产品页面的短描述 remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 ); // 移除店铺列表页的产品短描述 remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_single_excerpt', 5 );
这段代码直接移除了WooCommerce负责渲染短描述的钩子,不管数据库里有没有短描述内容,前端都不会输出。
3. 彻底清空短描述数据(防止API/批量导入)
如果要做到极致彻底,连通过API、批量导入等方式添加的短描述也能拦截,可以用下面的代码在产品保存时自动清空短描述字段:
// 保存产品时自动清空短描述内容 add_filter( 'wp_insert_post_data', 'clear_product_short_desc_on_save', 99, 2 ); function clear_product_short_desc_on_save( $data, $postarr ) { // 仅针对产品类型 if ( isset( $data['post_type'] ) && $data['post_type'] === 'product' ) { $data['post_excerpt'] = ''; } return $data; }
这样不管通过什么方式修改产品,短描述都会被强制清空,确保数据库里不会留存任何短描述内容。
小贴士:推荐把这些代码放到自定义插件里,而不是主题的
functions.php,这样主题更新的时候代码不会丢失。
内容的提问来源于stack exchange,提问作者Kels Ivi
相关产品推荐
相关产品推荐

