我有几个产品,我需要渲染另一个块模板而不是
single-product.html
,即single-product-custom.html
.
问题是,似乎没有类似的逻辑来选择页面中的模板,也没有通过网站编辑器为特定类别的产品添加模板的方法。
过滤元字段
页面中的自定义模板存储在元字段中
_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