如何将javascript排入wordpress子主题

时间:2016-02-10 09:51:06

标签: javascript php jquery css wordpress

在我放松心情之前,我真的需要一些帮助。

所以我想为我的wordpress儿童主题实施汉堡包菜单。这个对我来说很好看。 https://github.com/joncoop/hamburger-menu

我下载了zip文件,解压缩到我的电脑试了一下,就像一个魅力。

我将文件上传到我的孩子主题,我按书完成了所有内容。

通过我的functions.php文件,我适当地排列了样式和脚本。

这是我使用的代码:

function NovelLite_child_add_stylesheet() {
if (!is_admin()) {
wp_enqueue_style('hamburger', get_stylesheet_directory_uri() . "/css/main.css", '', '', 'all');
}
}
add_action('wp_enqueue_scripts', 'NovelLite_child_add_stylesheet');

function NovelLite_child_wp_enqueue_scripts() {

wp_enqueue_script('hamburger', get_stylesheet_directory_uri() . "/js/hamburger-menu.js");
wp_enqueue_script('neki', get_stylesheet_directory_uri() . "/js/jquery-2.1.4.min.js");


}
add_action('wp_enqueue_scripts', 'NovelLite_child_wp_enqueue_scripts');

但它只是不起作用。 main.css样式表工作正常,菜单看起来不错,它在移动设备上获取汉堡包按钮,但点击时,它不显示菜单。这告诉我javascript没有按预期工作。所以我想知道可能是什么问题。我花了3天时间把它搞清楚了,我被困住了。

P.S。页面源显示脚本已入队!

请帮忙

提前致谢

1 个答案:

答案 0 :(得分:2)

也许问题出现在jQuery中 - 你的菜单需要它,但是你在汉堡包js之后包含它。试试这个:

wp_enqueue_script('hamburger', get_stylesheet_directory_uri() . "/js/hamburger-menu.js", array('jquery'));

告诉WP在jquery之前加载WP embeded hamburger.js并将其用于' hamburger.js`。

此外,如果这样做,则无需在此处加载外部jquery:

wp_enqueue_script('neki', get_stylesheet_directory_uri() . "/js/jquery-2.1.4.min.js");

但是,如果您要使用jquery文件,则必须更改hamburger排队脚本以使用您的jquery文件,如下所示:

wp_enqueue_script('hamburger', get_stylesheet_directory_uri() . "/js/hamburger-menu.js", array('neki'));