Wordpress,以正确的方式添加自定义脚本

时间:2014-02-26 08:47:31

标签: javascript php jquery wordpress

我必须将HTML / CSS内置的主题转换为Wordpress主题。我是Wordpress的新手。我首先想到的是为我的主题添加自定义脚本,如下例所示:

<!-- Bootstrap Scripts -->
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/bootstrap.min.js"></script>

<!-- Superslides Script -->
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery.superslides.min.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery.easing.1.3.js"></script>

<!-- ScrollBar Script -->
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery.nicescroll.min.js"></script>

<!-- Masonry Script -->
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery.masonry.min.js"></script>

<!-- Fancybox Script -->
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/jquery.fancybox.min.js"></script>

<!-- Settings Script -->
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/settings.js"></script>

但我相信这不是添加它们的正确方法,所以我找到了另一个解决方案,但我不确定,如果我写的正确,那么我写的下一个代码就在functions.php文件中:

    // Always use wp_enqueue_scripts action hook to both enqueue and register scripts
add_action( 'wp_enqueue_scripts', 'enqueue_and_register_my_scripts' );

function enqueue_and_register_my_scripts(){

    // Use `get_stylesheet_directoy_uri() if your script is inside your theme or child theme.
    wp_register_script( 'my-script', get_template_directory_uri() . '/js/bootstrap.min.js' );
    wp_register_script( 'my-script', get_template_directory_uri() . '/js/jquery.superslides.min.js' );
    wp_register_script( 'my-script', get_template_directory_uri() . '/js/jquery.easing.1.3.js' );
    wp_register_script( 'my-script', get_template_directory_uri() . '/js/jquery.nicescroll.min.js' );
    wp_register_script( 'my-script', get_template_directory_uri() . '/js/jquery.masonry.min.js' );
    wp_register_script( 'my-script', get_template_directory_uri() . '/js/jquery.fancybox.min.js' );
    wp_register_script( 'my-script', get_template_directory_uri() . '/js/settings.js' );

    // Let's enqueue a script only to be used on a specific page of the site
    if ( is_page( 'careers' ) ){

        // Enqueue a script that has both jQuery (automatically registered by WordPress)
        // and my-script (registered earlier) as dependencies.
        wp_enqueue_script( 'my-careers-script', get_template_directory_uri() . '/js/my-careers-script.js', array( 'jquery', 'my-script' ) );
    }
}

如果这是正确的方法,那么我必须打电话:

<?php wp_enqueue_scripts(); ?>
header.php文件中的

? 如果这不是将多个脚本添加到Wordpress主题的正确方法,请告诉我,我做错了什么,我会非常感激......! 感谢!!!!!

1 个答案:

答案 0 :(得分:2)

使用wp_register_script是注册脚本以包含在页面上的正确方法,但不会将其排入队列并将其链接到页面上 - 请使用wp_enqueue_script(它使用similar parameters但是注册会在适当的时候将它添加到页面中)。如果您先使用wp_register_script,则必须在某个时候致电wp_enqueue_script,以便将其实际添加到页面中。您无需随时致电enqueue_and_register_my_scripts:将其添加到'wp_enqueue_scripts'操作就足够了。

最后,您必须为每个要注册/排队自己的唯一 ID的脚本提供:当前您将它们全部注册为“my-script”,并且每个脚本都覆盖以前的脚本