因此,我得到了一个parenttheme,它可以生成这样的脚本:
function my_scripts() {
wp_deregister_script(\'jquery\');
wp_enqueue_script( \'modernizr\', get_stylesheet_directory_uri().\'/assets/js/dist/modernizr.min.js\', array(), \'1.0\', false );
wp_enqueue_script( \'jquery\', get_stylesheet_directory_uri().\'/assets/js/dist/jquery.min.js\', array(), \'1.0\', false );
wp_register_script( \'scripts\', get_stylesheet_directory_uri().\'/assets/js/dist/scripts.min.js\', array(), \'1.0\', true );
wp_enqueue_style( \'fonts\', \'https://fonts.googleapis.com/css?family=Lora:400,400italic\', array(), \'1\', \'screen,projection\' );
wp_enqueue_style( \'style\', get_stylesheet_directory_uri().\'/style.css\', array(), \'1\', \'screen,projection\' );
}
add_action( \'wp_enqueue_scripts\', \'my_scripts\' );
我应该补充说,我正在使用gulp缩小上述脚本,并将它们放在
dist
-文件夹
在父主题中一切正常,但我现在创建了一个子主题,但找不到脚本。
控制台日志:
http://localhost:3000/PARENT/wp-content/themes/CHILD/assets/js/dist/jquery.min.js?ver=1.0 - 404
我的子主题中只有2个文件:
风格css:/*
Theme Name: child
Description: parent child theme
Template: parent
Version: 1.0.0
*/
和功能。php:
<?php
add_action( \'wp_enqueue_scripts\', \'enqueue_parent_styles\' );
function enqueue_parent_styles() {
wp_enqueue_style( \'parent-style\', get_template_directory_uri().\'/style.css\' );
}
?>
我不知道错误的原因,但我的一些想法是:
由于我使用gulp缩小脚本,可能在子主题搜索脚本时尚未创建脚本。
如上所述,代码在以下位置查找文件:子主题:
ttp://localhost:3000/PARENT/wp-内容/主题/子/资产/js/dist/jquery。min.js?ver=1.0-
也许它应该在父目录中查找文件?
感谢您的帮助。非常感谢。
最合适的回答,由SO网友:Rishabh 整理而成
这是因为父主题使用get_stylesheet_directory_uri()
调用脚本。通过此功能,它将搜索子主题文件夹中的文件(bcause child-theme的style.css由活动主题使用),其中不存在此类文件。此函数用于搜索样式为的主题文件夹。css文件正在活动主题中使用。现在您的子主题处于活动状态(在外观>主题中)。
如果要调用该脚本,请在子主题的函数中使用该脚本。像这样的php
function my_scripts() {
wp_deregister_script(\'jquery\');
wp_enqueue_script( \'modernizr\', get_template_directory_uri().\'/assets/js/dist/modernizr.min.js\', array(), \'1.0\', false );
wp_enqueue_script( \'jquery\', get_template_directory_uri().\'/assets/js/dist/jquery.min.js\', array(), \'1.0\', false );
wp_register_script( \'scripts\', get_template_directory_uri().\'/assets/js/dist/scripts.min.js\', array(), \'1.0\', true );
wp_enqueue_style( \'fonts\', \'https://fonts.googleapis.com/css?family=Lora:400,400italic\', array(), \'1\', \'screen,projection\' );
wp_enqueue_style( \'style\', get_template_directory_uri().\'/style.css\', array(), \'1\', \'screen,projection\' );
}
add_action( \'wp_enqueue_scripts\', \'my_scripts\' );
在上面的代码中,我只是替换
get_stylesheet_directory_uri()
具有
get_template_directory_uri()
.
get_template_directory_uri()
函数将在父主题中搜索文件。