Я пытался выяснить, что делают плагины Elementor (и Elementor Pro) в Wordpress, чтобы их скрипты загружались последними в теле, потому что мой плагин Script должен загружать ПОСЛЕ тех. Его нужно загрузить прямо перед тегом 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.