Порядок wp_enqueue_script – внешний vs inline js

У меня есть несколько сценариев, загружающих мою тему:

// loading script.js <script type="text/javascript" src="script.js"></script> // doing something using script.js <script type="text/javascript"> script-var: <?php echo get_option('script1-var');?> </script> 

Они работают хорошо, но когда я делаю wp_enqueue_script вместо <script src=""> скрипт загружает AFTER in-line js content, поэтому:

  // enqueuing script.js wp_enqueue_script('script-js', get_template_directory_uri() ."/scripts/script.js"); // doing something using script.js <script type="text/javascript"> script-var: <?php echo get_option('script1-var');?> </script> 

дает:

  <script type="text/javascript"> script-var: <?php echo get_option('script1-var');?> </script> <!-- EVERYTHING ABOVE THIS LINE IS USELESS SINCE THE SCRIPT LOADS AFTER, NOT BEFORE, IT --> <script type='text/javascript' src='http://address/scripts/script.js?ver=3.2.1'></script> 

Как этого избежать? Я знаю, что могу поместить свои встроенные скрипты в разные файлы и вставить их в очередь, но это абсолютно бессмысленно, поскольку в них много функций PHP.

Когда вы вставляете скрипты, они выводятся с помощью wp_head() , поэтому, если вы хотите встроить скрипты после этого, поместите их после wp_head() .

Тем не менее, если вы добавляете скрипты inline только для добавления некоторого php, лучшим маршрутом будет выделение его и использование wp_localize_script для установки любых js-vars, которые вам нужны из php.