jQuery脚本未在WordPress中加载

时间:2014-02-22 13:29:56

标签: javascript php jquery wordpress

我尝试将我的脚本附加到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' );   

}

请编辑我的主题。

感谢

3 个答案:

答案 0 :(得分:1)

确定以下是解决问题的步骤。

1)检查您是否添加了必要的操作。

在主题文件夹中打开header.php。检查标记之前是否有wp_head操作。

<?php wp_head(); ?>

打开footer.php,在结束身体标签检查之前,你有wp_footer标签。

<?php wp_footer(); ?>

这些标记是正确添加脚本所必需的。

2)检查你的JS是否存在。

接下来很简单。打开JS文件夹并检查您尝试加载的文件是否存在。如果WordPress不存在而不是添加损坏的URL,它将完全忽略它们。

3)检查您是否使用了正确的挂钩。

我注意到一些评论/答案建议使用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 );
}