Итак, я использую Starkers для создания своей следующей темы WP, и я столкнулся с небольшой проблемой, я включил свою собственную версию jQuery в header.php
файл, но при проверке моего сайта с помощью 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()
вверху, чтобы файл jQuery, включенный в WP, использовался для всех моих плагинов, даже если в нем указано, что этого делать не следует.
Я закомментировал строку jQuery в wp_head()
функции, но она требуется для страницы администратора, поэтому мне пришлось вернуть ее обратно.
Я также хотел бы использовать (по крайней мере, поэкспериментировать) с использованием версии jQuery Google CDN, но не хочу включать ее дважды!
Я надеюсь, вы понимаете, что я пытаюсь объяснить, любые предложения о том, как я могу решить эту проблему, будут очень признательны. Я также был бы признателен за любые советы о том, как вы обрабатываете файлы JavaScript с файлом заголовка.
Спасибо!
Это должно быть переименовано в что-то вроде «Как связать внешние файлы jQuery/Javascript с WordPress».
Я согласен, я не был уверен, как это назвать, потому что я не был слишком знаком с проблемой, которая у меня была 🙂
Вы правы, думая, что я добавляю скрипты с помощью
<script>
тега, это альтернатива, которую я искал, большое спасибо! 🙂Если вы хотите добавить свой скрипт только во внешний интерфейс, подключитесь
'template_redirect'
вместо'init'
.Хороший материал, я обновлю свой ответ. Я почти предложил обернуть очередь в
is_admin()
.Обычно я ставлю скрипты в очередь в файле шаблона над
get_header()
, выполнение этогоfunctions.php
будет ставить его в очередь на каждой странице, которая может не потребоваться. Если у меня есть глобальный, я ставлю его в очередьheader.php
до вызоваwp_head()
. Таким образом, очереди находятся там, где вы ожидаете, что они будут в<head>
Иногда лучше добавить скрипты внизу страницы. Это последний параметр codex.wordpress.org/Function_Reference/wp_enqueue_script (5-й, $in_footer), установите для него значение true. Немного информации для тех, кому нужно больше контроля.
На самом деле это лучший ответ, поскольку он показывает, как поставить в очередь версию jQuery Google CDN. Хотя, как Джон предложил в другом месте, если вы хотите использовать это только во внешнем интерфейсе, подключитесь к
template_redirect
вместоinit
.Хороший вопрос о том, где он загружается. Хотя на самом деле в админке тоже используется jQuery, верно? В любом случае, спасибо, что показали, как им управлять.
Да, я только что нашел 5 советов по jquery/wp, спасибо за ответ 🙂
5 советов по использованию jQuery с WordPress — ссылка больше не работает.
ПРИМЕЧАНИЕ. Пример включает «более старую» версию jQuery, текущая версия WP (3.0.1) работает под управлением jQuery 1.4.2…
Судя по формулировке вашего вопроса, вы должны добавлять сценарии, записывая
<script>
теги в свой шаблон. Добавьте свои собственные скриптыwp_enqueue_script()
в свой шаблонfunctions.php
, соответствующим образом настроив зависимости от jQuery, иwp_head()
скрипты добавятся за вас.См. страницу кодекса для получения дополнительной информации.
Я предлагаю взглянуть на 5 советов по использованию jQuery с WordPress. Среди прочего, он показывает код, необходимый для загрузки jQuery из библиотеки Google:
Вы также можете проверить плагин Use Google Libraries.
Хотя @tnorthcutt прав в том, что вы должны правильно удалить из очереди собственный jquery WP, если хотите загрузить свой собственный, вы наверняка столкнетесь с проблемами при загрузке версии jquery, отличной от ядра WP. И ядро, и плагины полагаются на его наличие. Поэтому, если вы не обновляете свою тему новейшим jquery каждый раз при обновлении WP, ваш сайт может сломаться.
Следующий код гарантирует, что ваша тема всегда загружает правильную версию jquery, сначала проверив, какую версию использует WP, а затем загрузив ее из Google: