我有一些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。我需要嵌入原始代码。
答案 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规范进行操作的正确方法。