如何在WordPress的页脚中的结束Body标记之前添加Java脚本

时间:2012-05-04 作者:SixfootJames

I\'m following some of the other people\'s advice here 关于在结束body标记之前添加我的js文件,但它似乎对我不起作用。

请有人帮我查一下好吗?

<?php
  /*load the js file into the footer*/
  function myscript() 
  {
   if( wp_script_is( \'jquery\', \'done\' ) ) {
  ?>
     <script type="text/javascript" src="js/scripts.js"></script>
  <?php
  }
 }
  add_action( \'wp_footer\', \'myscript\' );
?>
非常感谢

EDIT:------------------------------------------------

这是一个简短的解决方案。。<script language="javascript" src="<?php bloginfo(\'template_directory\'); ?>/js/scripts.js"></script>

这不是正确的答案,是吗?

EDIT---------------------------------------------------

这是我根据WP codex的例子和你的观点尝试的,但我认为我仍然在做错事。。

function my_scripts_method() {
wp_enqueue_script(
    \'myscript\',
    get_bloginfo(\'template_directory\') . \'/js/scripts.js\',
    array( \'jquery\' ), 
    \'\', 
    true
);
 }    

 add_action(\'wp_enqueue_scripts\', \'my_scripts_method\');
文件仍然没有加载到页脚中。

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

您应该始终使用Wordpress函数添加javascript(和样式)wp_enqueue_script()

工作原理如下:

wp_enqueue_script( 
 $handle // the name of your enqueued file, in your case \'myscript\'
,$src    // source of your file, can be external, or for your example: get_bloginfo(\'template_directory\') . \'/js/scripts.js\'
,$deps   // does your javascript depend on another javascriptfile? for example jquery? pass an array of arguments specifying all the dependencies: array( \'jquery\' )
,$ver   // version number of your javascript
,$in_footer // this is what you need: true
);
在设置$in_footer 要实现这一点,它将在wp_footer() 操作,通常在body标记结束之前。

所以,对你来说:

wp_enqueue_script( \'myscript\', get_bloginfo(\'template_directory\') . \'/js/scripts.js\', array( \'jquery\' ), \'\', true );
成功了。

Note: 并非所有主题都会调用wp_footer(); 在页脚/就在结尾上方</body> 标签

结束