WordPress:无法通过子主题覆盖父主题文件

时间:2018-10-05 16:43:02

标签: wordpress parent-child

我在通过子主题覆盖父主题文件时遇到问题。通常我通过遵循相同的文件结构/路径将父主题文件复制到子主题,并且可以正常工作。但是这次它不起作用。我不确定是什么问题...

父文件位于:

wp-content/themes/THEMENAME/assets/js/FILENAME.js 

我把这个主题放在子主题中:

wp-content/themes/CHILDTHEME/assets/js/FILENAME.js

此文件存在相同问题:

父路径:

wp-content/themes/THEMENAME/includes/FILE.php

子路径:

wp-content/themes/CHILDTHEME/includes/FILE.php

我很确定,我缺少一些技术性的东西,但我无法弄清楚。寻找帮助!

1 个答案:

答案 0 :(得分:0)

子主题不会覆盖css / js文件,要实现这一点,您将需要在子function.php文件中将这些脚本出队,您需要获取父主题用来使其入队的脚本句柄名称。 / p>

add_action( 'wp_enqueue_scripts', function(){
  wp_dequeue_script( 'script-handle-name' );
}, PHP_INT_MAX );

子主题仅覆盖模板文件Template Hirarchy

要覆盖php文件,有两个条件:

1)如果您要覆盖的文件功能已被添加到操作/过滤器中,请在子主题functions.php文件中创建一个名称不同的功能,并以更高的优先级对其进行挂钩。

2)如果要覆盖函数本身,则只有在具有条件的父主题中创建函数时,才可以在子主题functions.php中使用相同的名称重新创建函数。

if ( ! function_exists ( 'my_function' ) ) {
    function my_function() {
    }
}

否则,它将引发致命错误。