Я делаю это прямо сейчас с помощью следующего кода:
function uw_load_scripts() {
// De-register the built in jQuery
wp_deregister_script('jquery');
// Register the CDN version
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), null, false);
// Load it in your theme
wp_enqueue_script( 'jquery' );
}
add_action( 'wp_enqueue_scripts', 'uw_load_scripts' );
Это работает, но я должен сделать это для всех, как это, или для всех, кроме администратора (так что бэкэнд использует версию WordPress?):
if (function_exists('load_my_scripts')) {
function load_my_scripts() {
if (!is_admin()) {
wp_deregister_script( 'jquery' );
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), null, false);
wp_enqueue_script('jquery');
}
}
}
add_action('init', 'load_my_scripts');
Эта версия вообще не работает, я получаю jQuery-версию WordPress, а не Google.
Следовательно, я должен отменить регистрацию jQuery, который включен в WordPress вообще?
Кроме того, как мне добавить мои собственные скрипты (скрипты слайдера, modernizr и мои собственные custom.js) правильным способом? Я думаю, что я должен сделать это через functions.php, а не в заголовке, как я делаю сейчас, но я не уверен, как бы я это сделал.
wp_enqueue_script()
вызовах произошла синтаксическая ошибка .$in_footer
параметра значение true в вашем вызовеwp_enqueue_script()
.Надеюсь, это поможет, ищите кодекс для
wp_enqueue_scripts
получения дополнительной информации.init
чтобы поставить в очередь . Используйтеwp_enqueue_scripts
для внешнего интерфейса иadmin_enqueue_scripts
для стороны администратора. Вы можете использоватьinit
для регистрации скриптов, хотя.wp_enqueue_scripts
срабатывает только на переднем конце (а не на странице входа в систему) - так что вам не нужно проверятьis_admin()
.Если у вас нет конкретной причины поступить иначе, я бы предложил зарегистрировать и поставить в очередь сценарии, использующие
functions.php
для тем или иным образом подключаемый модуль. Вы просто положили:Если цель состоит в том, чтобы поставить скрипт в очередь при использовании шорткода, вы можете использовать
wp_enqueue_script
обратный вызов шорткода, чтобы ставить его в очередь только при необходимости (это будет печатать его в нижнем колонтитуле начиная с версии 3.3 ).Вы не должны перерегистрировать существующий jQuery на стороне администратора. Вы можете что-то сломать: D.
Плагины не должны перерегистрировать существующий jQuery.
Вы должны взвесить все за и против перерегистрации jQuery. Например, он может сломать некоторые плагины, если вы зарегистрируете старую версию (возможно, не сейчас, но в будущем ...)
источник
Справедливое предупреждение: отмена регистрации упакованной версии WP jQuery в пользу вашей может привести к проблемам, особенно если вы не будете особенно осторожны, чтобы убедиться, что вы меняете версию, на которую указывает, всякий раз, когда WP обновляет свою версию. Это вдвойне касается плагинов, которые часто (или часто должны, по крайней мере) писать свои плагины для максимальной совместимости с WP-версией jQuery.
Тем не менее, ваша первая версия верна - она подключена
wp_enqueue_scripts
. Ваша вторая функция подключенаinit
, возможно, поэтому она не работает должным образом.Добавьте свои собственные сценарии аналогичным образом:
Здесь я предполагаю, что вы загружаете скрипты из
js
каталога в вашей текущей директории темы; измените параметр URI, если это не так. Третий параметрarray( 'jquery' )
говорит, чтоbbg-scripts
зависит отjquery
, и поэтому должен быть загружен позже. См. Https://codex.wordpress.org/Function_Reference/wp_enqueue_script для получения дополнительной информации.источник
Это ничего не сделает ... Я подозреваю, что вы имеете в виду
Ваш пример загрузит функцию load_my_scripts только в том случае, если она уже существует (чего нет, поэтому не будет, и если это произойдет, это приведет к ошибке)
источник
Если по соображениям производительности вы хотите загрузить jquery и другие базовые js-файлы из CDN, убедитесь, что вы загружаете одну и ту же версию, чтобы предотвратить неприятные вещи, возникающие с функциями ядра и плагинов. Как это:
источник
После проверки всех различных методов загрузки jquery (не только в этом посте), я понял, что ни один из них не делает все это:
Есть много альтернативных версий, делающих некоторые из них в списке, но не все, поэтому я написал свою версию, комбинируя и модифицируя некоторые из уже доступных методов. Вот:
Чтобы сэкономить пропускную способность и не пинговать Google каждый раз, когда страница перезагружается, он запоминает, подключен ли Google CDN в течение 5 минут с использованием Wordpress Transient API.
источник