【通过插件覆盖WordPress主题页面】我想使用自定义的wordpress插件覆盖主题页面, 我尝试添加过滤器, 但没有结果, 我不想直接更改主题, 因为这对每个开发人员都是个坏主意。这是我的插件代码, 我添加了一个过滤器来检查页面
public function __construct(){
add_filter('theme_file_path', 'customize_theme_pages', 99, 2 );
}
我试图用我的自定义页面替换主题页面
public function customize_theme_pages($path, $file = ''){
if( 'woocommerce/checkout--/form-checkout.php' === $file ) {
return plugin_dir_url( __FILE__ ).'inc/form-checkout.php';
}
return $path;
}
对我来说, 这似乎是合乎逻辑的解决方案, 但我的网站没有任何更改
#1你可以使用woocommerce_locate_template过滤器覆盖插件中的woocommerce模板文件。
一个简单的示例, 假设你想用插件的inc / checkout / form-checkout.php文件覆盖checkout / form-checkout.php:
function customize_theme_pages($template, $template_name, $template_path) {
if ($template_name == 'checkout/form-checkout.php') {
$template = plugin_dir_path( __FILE__ ) . 'inc/checkout/form-checkout.php';
}
return $template;
}add_filter('woocommerce_locate_template', 'customize_theme_pages', 99, 3);
**我已经测试了上面的代码, 并且可以在WordPress 4.9.8上运行的WooCommerce版本3.5.0上运行。
如果要替换标准页面模板, 则可以使用page_template过滤器。
推荐阅读
- 覆盖WordPress核心函数require_wp_db()
- 覆盖子主题中的模块
- .onscroll函数在单个帖子页面上不起作用
- 一键更改WordPress主题定制器中的所有设置()
- 在不同的国家打开不同的页面()
- 导航以外没有其他可点击的内容(a hrefs或click函数)
- WordPress中如何查看文章数量
- 没有样式表在WordPress期望菜单中
- 新页面将我发送到存档页面