仅在 WooCommerce 中为某些产品覆盖“单一产品”块模板

问题描述 投票:0回答:1

我有几个产品,我需要渲染另一个块模板而不是

single-product.html
,即
single-product-custom.html
.

问题是,似乎没有类似的逻辑来选择页面中的模板,也没有通过网站编辑器为特定类别的产品添加模板的方法。

wordpress woocommerce block wordpress-gutenberg
1个回答
0
投票

过滤元字段

页面中的自定义模板存储在元字段中

_wp_page_template
.

可以为自定义值过滤此字段,例如:

add_filter('get_post_metadata', function ($value, $object_id, $meta_key, $single, $meta_type) {
   if($meta_key === '_wp_page_template' &&  /** Other conditions to match **/) {
         return 'single-product-custom';
   }  
   return $value;
}, 10 , 5)

使用 ACF 选择元字段

另一个简单的解决方案是使用高级自定义字段并添加一个选择框来设置这个字段,至少有两个值:

single-product
single-product-custom

© www.soinside.com 2019 - 2024. All rights reserved.