我一直在试图弄清楚 Wordpress 中的 Elementor(和 Elementor Pro)插件正在做什么以使其脚本最后加载到正文中,因为我的插件脚本需要在这些之后加载。它需要在 end 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 脚本之后仍然不会出现。
我已经用谷歌搜索了这个主题,但我最终得到了关于如何在页脚中获取脚本的相同答案。Elementor 正在做些什么来迫使他们的脚本陷入困境。
我找到了一个解决方案:将我的脚本排入我的插件中,如下所示:
add_action( 'elementor/frontend/after_enqueue_scripts', 'ajax_chat_enqueue_scripts', 999999, 1);
但这似乎是一个黑客行为。我很想用'wp_enqueue_scripts'标签来解决它。