WordPress中页面上所需的脚本,最佳实践是什么?

时间:2019-01-24 15:04:31

标签: jquery wordpress

我有一些JQ插件,需要在我的Wordpress安装中初始化 ON 页面( front-page.php )。

我需要在</body>标签下面嵌入以下脚本。

这里的最佳做法是什么?

  

我的所有脚本都按照Wordpress codex的建议进行了注册和排队。

</body>
  <script>
    // . Plugin Init

    $(window).on('load', function () {
      // initialization of svg injector module
      $.HSCore.components.HSSVGIngector.init('.js-svg-injector');
    });

    $(document).on('ready', function () {
      // initialization of slick carousel
      $.HSCore.components.HSSlickCarousel.init('.js-slick-carousel');
    });

    // . End Plugin Init
  </script>

我看过wp_localize_script,但我很确定这不是我所需要的(可能是错误的)。 我能为我指明正确方向的任何帮助将不胜感激。

这是我的footer.php文件中当前正在使用的内容;

<?php if ( is_front_page() ) : ?>
    <!-- JS Plugins Init. -->
    <script>
        jQuery(window).on('load', function () {
         // initialization of svg injector module
        jQuery.HSCore.components.HSSVGIngector.init('.js-svg-injector');
         });

        jQuery(document).on('ready', function () {
        // initialization of slick carousel
        jQuery.HSCore.components.HSSlickCarousel.init('.js-slick-carousel');
        });
    </script>
<?php endif; ?>
  

为了澄清,我不需要嵌入file.js。我需要嵌入原始代码。

1 个答案:

答案 0 :(得分:2)

原始答案

如何将JavaScript链接放在</body>之前而不是<head>里面?

根据the documentation,当您将脚本排入队列时,便会完成此操作。只需执行

wp_enqueue_script('script_handle', plugin_dir_url(__FILE__).'script.js', [], null, TRUE);

最后一个参数TRUE告诉wp_enqueue_script()插入</body>之前而不是</head>

更新的答案

如何在</body>之后输出原始JavaScript?

我们需要的功能wp_print_scripts()在Wordpress 3.3中已被弃用,而您猜到它是wp_enqueue_script()了。如果您想附加已注册的脚本,可以使用wp_add_inline_script('script_handle', $data),它将在链接后面的$data标记内输出第二个参数<script></script>内的内容。放入排队的脚本。

关于将其放置在<body>之外,我猜您将不得不创建自己的插件,因为主题的设计者和Wordpress的开发人员总是会将所有输出都放置在{{1}内}和<head>标签,因为这是根据HTML规范进行操作的正确方法。