我有wordpress儿童主题,并且在其中我可以通过创建以下结构的文件夹来扩展woocommerce:
/wp-content/themes/theme-child/woocommerce/single-product/add-to-cart/*.php
但问题是我不想扩展位于
的内容/wp-content/plugins/woocommerce-plugin/templates/single-product/add-to-cart/*.php
通过第一种方法,我可以覆盖woocommerce
个文件,但如何为woocommerce-plugin
执行此操作?
答案 0 :(得分:1)
要在不更改woocommerce插件文件夹中的任何内容的情况下覆盖woocommerce模板,您需要将整个templates
文件夹(位于woocommerce插件中)复制到您的活动子主题文件夹并重命名{{ 1}} (see here)。像这样,活动的woocommerce模板现在位于您的子主题文件夹中,您可以自定义它们......
答案 1 :(得分:0)
您可以通过调用wc_get_template
挂钩来实现,只需告诉文件应该覆盖的位置:
add_filter('wc_get_template', 'plugin_wc_templates', 10, 5);
function plugin_wc_templates ($located, $template_name, $args, $template_path, $default_path) {
$plugin_path = plugin_dir_path( __FILE__ );
$newtpl = str_replace('woocommerce/templates', $plugin_path. '/templates', $located);
if ( file_exists($newtpl) )
return $newtpl;
return $located;
}
请记住打印$plugin_path
变量以确保路径生成正常。