我已经创建了一个函数,覆盖WooCommerce template-part
在我的自定义插件single-product
,如果满足一定的 meta值。但当有一个自定义模板部分的相关产品,它只是去一个无限循环,因为它加载自定义模板内相关产品太。我如何才能避免加载模板部分相关产品?
function override_woo_template_part($template, $slug, $name) {
global $post;
$product = wc_get_product($post->ID);
$myplugin_type = $product->get_meta('_myplugin_type');
$path = '';
if ($name && !empty($myplugin_type) && $myplugin_type != 'default') {
$template_directory = myplugin_directory_path() . '/woocommerce/';
$path = $template_directory . "{$slug}-{$myplugin_type}.php";
}
return file_exists($path) ? $path : $template;
}
add_filter('wc_get_template_part', 'override_woo_template_part', 10, 3);
1条答案
按热度按时间py49o6xq1#
正如@VijayHardaha建议的,如果文件名
$name
等于single-product
,则添加验证以仅加载template-part
。