javascript - 如何在正文末尾的 ELEMENTOR 脚本之后加载我的脚本

标签 javascript html wordpress elementor

我一直在尝试弄清楚 Wordpress 中的 Elementor(和 Elementor Pro)插件正在做什么以使其脚本最后加载到正文中,因为我的插件脚本需要在这些之后加载。它需要在结束 body 标记之前加载。

<script type='text/javascript' src='https://example.com/wp-content/plugins/elementor/assets/lib/swiper/swiper.jquery.min.js?ver=4.4.3'></script>
<script type='text/javascript'>
/* <![CDATA[ */
var elementorFrontendConfig = {"isEditMode":"","is_rtl":"","breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"urls":{"assets":"https:\/\/example.com\/wp-content\/plugins\/elementor\/assets\/"},"settings":{"page":[],"general":{"elementor_global_image_lightbox":"yes","elementor_enable_lightbox_in_editor":"yes"}},"post":{"id":406,"title":"Chat","excerpt":""}};
/* ]]> */
</script>
<script type='text/javascript' src='https://example.com/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=2.2.1'></script>
</body>
</html>

我已经尝试提高我的入队脚本的优先级:

add_action( 'wp_enqueue_scripts', 'ajax_chat_enqueue_scripts',999999,1);

我在页脚中排队,最后是“footer=true”:

wp_enqueue_script( 'chat-post', plugins_url( '/chat-post.js', __FILE__ ), null, null, true );

但我的脚本仍然不会在 frontend.min.js 脚本之后显示。

我用 Google 搜索了这个主题,但关于如何在页脚中显示脚本,我得到的答案都是一样的。 Elementor 到底在做什么来迫使他们的脚本走到尽头,这完全没有任何意义。

我找到了一个解决方案:像这样在我的插件中排队我的脚本:

add_action( 'elementor/frontend/after_enqueue_scripts', 'ajax_chat_enqueue_scripts', 999999, 1);

但这似乎只是一个 hack。 我很乐意使用“wp_enqueue_scripts”标签来解决它。

最佳答案

如果您的脚本依赖于其他脚本或脚本并且必须在这些脚本之后插入才能正常工作,在 wordpress 中您可以使用 wp_enqueue_script()并将您的脚本所依赖的依赖项数组(wp_enqueue_script 中称为 $deps 的第三个参数)传递给此方法。

wp_enqueue_script( string $handle, string $src = '', array $deps = array(),
 string|bool|null $ver = false, bool $in_footer = false )

例子:

wp_register_script('myScript', get_template_directory_uri() . '/javascripts/myscript.js',
 array('jquery','bootstrap'), null, true );

在上面的例子中,myscript 依赖于 jquery 和 bootstrap 脚本。

或者出于任何原因,如果你想一个接一个地插入脚本,试试这个:

function my_scripts() {
        wp_register_script('myscript', get_template_directory_uri() . '/javascripts/myscript.js', null, null, true );
        wp_enqueue_script('myscript');
}
add_action( 'wp_enqueue_scripts', 'my_scripts', 20, 1)

播放和更改 wp_enqueue_scripts Hook 的 add_action 方法的 $priority 参数

关于javascript - 如何在正文末尾的 ELEMENTOR 脚本之后加载我的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52352210/

相关文章:

javascript - 将变量函数传递给数组 [Javascript]

javascript - TranslateX 与其他距离

html - Flex 框行换行在 Safari 中不起作用。尝试了多个前缀?

javascript - 如何防止 JQuery 按钮提交我的表单?

javascript - 为什么网站收不到 POST 请求?

css - html css 有点工作但实现困惑

javascript - 通过 Stripe 向用户收费并将资金存入另一个用户帐户

php - 使用PHP从MySQL服务器拉取数据以JSON格式显示

php - 在自己的 Wordpress 主题中显示部分编辑按钮

javascript - jQuery : How to handle event of multiple elements