2017-02-21 12 views
2

Документов для wp_add_inline_script состояния, что он:Как wp_add_inline_script, когда нет зарегистрированного скрипта для подключения?

Добавляет дополнительный код для зарегистрированного сценария.

Как вы это делаете, когда нет зарегистрированного скрипта? В моем случае мой единственный зарегистрированный JS находится перед закрывающим тегом body, и мне нужен встроенный скрипт (определение js) в голове. В частности, я хочу, чтобы мой встроенный JS приходил перед моими стилями, но после тегов <title> и <meta>.

Я попытался установить пустой скрипт, а затем использовать его, чтобы подключить мой встроенный скрипт, но это не сработало. Например:

wp_enqueue_script('theme-js-detection', null, array(), null, false); 

wp_add_inline_script('theme-js-detection', 
    '(function(H){H.className=H.className.replace(/\bno-js\b/,"js")})(document.documentElement)' 
); 

Это можно сделать?

ответ

2

Чтобы разместить свой сценарий, прежде чем стили Я хотел бы использовать крюк действий wp_enqueue_scripts с высоким приоритетом:

function my_special_inline_script() { 
    ?> 
    <script> 
     // your JS code 
    </script> 
    <?php 
} 

add_action('wp_enqueue_scripts', 'my_special_inline_script', 1, 1); 

<title> и <meta> должны быть перед этим до тех пор, wp_head() находится непосредственно перед закрытием <head> тега в соответствии с рекомендациями.

+0

Работает отлично, спасибо. – davidpauljunior

Смежные вопросы