如何通过unctions.php文件将一个JavaScript放入页脚?

时间:2014-08-26 作者:DigitalSky

好的,我非常熟悉如何通过functions.php 文件

尽管最近我遇到了一个令我困惑的情况。我想在WordPress网站上设置此脚本:customize-twitter-1.1.

首先,我需要在我的页脚中嵌入Twitter JavaScript,这是下面的代码:

<script>
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];
    if(!d.getElementById(id)){js=d.createElement(s);js.id=id;
    js.src="//platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js,fjs);}
}(document,"script","twitter-wjs");
</script>
然后我还需要在页脚中嵌入此JavaScript:

<script src="customize-twitter-1.1.min.js" type="text/javascript"></script>
最后但并非最不重要的是,我还需要嵌入此代码。。。

<script>
 var options = {
    "url": "/my-styles.css"
 };
 CustomizeTwitterWidget(options);
</script>
到目前为止,我添加到functions.php 文件如下所示。。。

wp_register_script( \'twitter-customize\', get_template_directory_uri() . \'/js/customize-twitter-1.1.min.js\', array(), \'1.0\', true );

wp_enqueue_script( \'twitter-customize\' );
该代码正确地将其中一个JavaScript文件排队,我只是不确定如何添加其他文件,以及如何将其添加到页脚。

非常感谢各位的意见!

3 个回复
最合适的回答,由SO网友:Abhik 整理而成

首先,用这些内联代码创建一个静态js文件。。

!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];
    if(!d.getElementById(id)){js=d.createElement(s);js.id=id;
    js.src="//platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js,fjs);}
}(document,"script","twitter-wjs");

 var options = {
    "url": "/my-styles.css"
 };
 CustomizeTwitterWidget(options);
然后将其作为twitter-customize 已排队的脚本。

function my_footer_enqueue() {

    wp_register_script( \'twitter-customize\', get_template_directory_uri() . \'/js/customize-twitter-1.1.min.js\', array(), \'1.0\', true );
    wp_enqueue_script( \'twitter-customize\' );
    wp_enqueue_script( \'twitter-customize-custom\', get_template_directory_uri() . \'/js/twitter-customize-custom.min.js\', array(\'twitter-customize\'), \'1.0\', true );
}
add_action( \'wp_enqueue_scripts\', \'my_footer_enqueue\' );
仅此而已。清洁和简单的方式。

SO网友:Nilambar Sharma

以下代码可用于在页脚中添加脚本BUT I should mention here that this is not the recommended way in WordPress.

add_action( \'wp_footer\', \'custom_footer_script\', 100 );
function custom_footer_script(){
  ?>
  <script>
  // your script
  </script>
  <?php
}
Alternative:

必须尝试创建单独的脚本文件,添加自定义代码并以WP方式排队吗?

SO网友:Gazi
add_action( \'wp_enqueue_scripts\', \'load_scripts \');

function load_scripts() {

    if ( !is_admin() ) {

        wp_enqueue_script( \'jquery\' );

        wp_register_script( \'twitter-customize\', get_bloginfo( \'template_directory\' ) .\'/js/customize-twitter-1.1.min.js\', array( \'jquery\' ), \'1.0\', true );
        wp_enqueue_script( \'twitter-customize\' );

    }
}
结束