我尝试将我的脚本附加到WordPress。我阅读了所有主题并尝试了所有主题,但没有得到解决方案,所以我创建了一个假的WordPress主题并上传了它。如果你能解决这个问题,请告诉我。
以下是文件:my theme
使用Flexslider Sticky Header和响应式导航 我猜wp_enqueue_script不起作用。
function theme_name_scripts() {
wp_enqueue_script( 'my-scripts', get_template_directory_uri() . '/js/myscripts.js', array(),'1.0.0', true );
wp_enqueue_script( 'masonry', get_template_directory_uri() . '/js/masonry.pkgd.min.js', array(), '1.0.0', true );
wp_enqueue_script( 'flex-min', get_template_directory_uri() . '/js/jquery.flexslider-min.js', 'jquery' );
wp_enqueue_script( 'flex', get_template_directory_uri() . '/js/jquery.flexslider.js', 'jquery' );
}
请编辑我的主题。
感谢
答案 0 :(得分:1)
确定以下是解决问题的步骤。
在主题文件夹中打开header.php。检查标记之前是否有wp_head操作。
<?php wp_head(); ?>
打开footer.php,在结束身体标签检查之前,你有wp_footer标签。
<?php wp_footer(); ?>
这些标记是正确添加脚本所必需的。
接下来很简单。打开JS文件夹并检查您尝试加载的文件是否存在。如果WordPress不存在而不是添加损坏的URL,它将完全忽略它们。
我注意到一些评论/答案建议使用init或wp_footer作为加载JS的钩子,但这是不正确的。您需要使用wp_enqueue_scripts挂钩。这应该放在functions.php
中function theme_name_scripts() {
wp_enqueue_script( 'my-scripts', get_template_directory_uri() . '/js/myscripts.js', array(),'1.0.0', true );
wp_enqueue_script( 'masonry', get_template_directory_uri() . '/js/masonry.pkgd.min.js', array(), '1.0.0', true );
wp_enqueue_script( 'flex-min', get_template_directory_uri() . '/js/jquery.flexslider-min.js', 'jquery' );
wp_enqueue_script( 'flex', get_template_directory_uri() . '/js/jquery.flexslider.js', 'jquery' );
}
add_action( 'wp_enqueue_scripts', 'theme_name_scripts' );
如果你还有一个问题让我知道,我会进一步探讨可能性,但必要的可能性很小。另外我想突出显示动作的名称是wp_enqueue_scripts。我最近发现了一些类似的问题,问题是用户已经忘记了's'。
答案 1 :(得分:0)
试试这个
<?php
function theme_name_scripts() {
wp_enqueue_script( 'my-scripts', get_template_directory_uri() . '/js/myscripts.js', array(),'1.0.0', true );
wp_enqueue_script( 'masonry', get_template_directory_uri() . '/js/masonry.pkgd.min.js', array(), '1.0.0', true );
wp_enqueue_script( 'flex-min', get_template_directory_uri() . '/js/jquery.flexslider-min.js', 'jquery' );
wp_enqueue_script( 'flex', get_template_directory_uri() . '/js/jquery.flexslider.js', 'jquery' );
}
add_action('wp_footer', 'theme_name_scripts');
?>
答案 2 :(得分:0)
尝试在包含myscripts.js
脚本后放置flexslider
:
function theme_name_scripts() {
wp_enqueue_script( 'masonry', get_template_directory_uri() . '/js/masonry.pkgd.min.js', array(), '1.0.0', true );
wp_enqueue_script( 'flex-min', get_template_directory_uri() . '/js/jquery.flexslider-min.js', 'jquery' );
wp_enqueue_script( 'flex', get_template_directory_uri() . '/js/jquery.flexslider.js', 'jquery' );
wp_enqueue_script( 'my-scripts', get_template_directory_uri() . '/js/myscripts.js', array(),'1.0.0', true );
}