Поэтому я использую Starkers для создания своей следующей темы WP и столкнулся с небольшой проблемой: я включил в header.php
файл свою собственную версию jQuery, но при проверке своего сайта с помощью Firebug я заметил, что jquery загружается дважды, немного покопался и заметил, что я включил не только файл, но и wp_head()
функцию.
Пытаясь решить проблему, я заметил комментарий в заголовочном файле, который возник из темы Twenty Ten:
/* Always have wp_head() just before the closing </head>
* tag of your theme, or you will break many plugins, which
* generally use this hook to add elements to <head>, such
* as styles, scripts, and meta tags
*/
Итак, вот моя проблема, у меня сложилось впечатление, что файл jQuery должен быть установлен перед любым другим файлом, который хочет его использовать, и это wp_head()
должно быть последним в <head>
элементе, я сейчас немного запутался, поскольку мне интересно я кладуwp_head()
вверху, чтобы включенный в WP файл jQuery использовался для всех моих плагинов, хотя в нем говорится, что этого не следует делать.
Я закомментировал строку jQuery в wp_head()
функции, но она необходима для страницы администратора, поэтому мне пришлось ее вернуть.
Я также хотел бы использовать (по крайней мере, поэкспериментировать) с использованием версии jQuery для Google CDN, но не хочу включать ее дважды!
Я надеюсь, что вы понимаете, что я пытаюсь объяснить, любые предложения о том, как я могу решить эту проблему, были бы очень благодарны. Буду также признателен за советы о том, как вы обрабатываете свои файлы JavaScript с помощью файла заголовка.
Благодарность!
источник
Ответы:
Исходя из формулировки вашего вопроса, вы должны добавить сценарии, написав
<script>
теги в своем шаблоне. Добавьте свои собственные скрипты черезwp_enqueue_script()
в своем шаблонеfunctions.php
, соответственно устанавливая зависимости от jQuery, иwp_head()
добавите скрипты для вас.Смотрите страницу кодекса для получения дополнительной информации.
источник
<script>
тега, это альтернатива, которую я искал, большое спасибо! :-)'template_redirect'
вместо'init'
.is_admin()
.get_header()
, делая этоfunctions.php
, я ставлю его в очередь на каждой странице, которая может не потребоваться. Если у меня есть глобальный, я ставлю его в очередь,header.php
прежде чемwp_head()
вызывается. Таким образом, очереди будут там, где вы ожидаете их увидеть<head>
Я предлагаю взглянуть на 5 советов по использованию jQuery с WordPress . Среди прочего, он показывает код, необходимый для загрузки jQuery из библиотеки Google:
Вы также можете проверить плагин Использовать библиотеки Google .
источник
template_redirect
вместо этого зацепитеinit
.Хотя @tnorthcutt правильно, что вы должны должным образом исключить исходный jquery для WP, если вы хотите загрузить свой собственный, вы наверняка столкнетесь с проблемами при загрузке другой версии jquery, которая отличается от ядра WP. И ядро, и плагины полагаются на то, что оно там. Так что, если вы не обновите свою тему новейшим jquery при каждом обновлении WP, ваш сайт может сломаться.
Следующий код гарантирует, что ваша тема всегда загружает правильную версию jquery, сначала посмотрев, какая версия WP использует, а затем загрузив ее из Google:
источник