Поставить в очередь jQuery в WordPress
Создавая свою первую тему с нуля в Wordpress 3.4.1, я знаю, что в Wordpress уже есть последняя версия jQuery через Google. Я читал о проблеме, если скрипт вызывается неправильно, поэтому хочу попытаться сохранить все как можно ближе к рекомендуемому кодированию. Я хочу убедиться, что скрипт загружен, что, как я полагаю, выполняется приведенным ниже PHP-скриптом в functions.php файл (взят из Кодекса Wordpress).
<?php
function my_scripts_method() {
wp_enqueue_script( 'jquery' );
}
Я хочу в основном есть пользовательское меню с использованием jQuery, так что это просто случай размещения скрипта, который я хочу активировать, в заголовке или разделе PHP?
Также, если бы я хотел поставить в очередь другой скрипт, который еще не включен в Wordpress, могу ли я просто добавить приведенный ниже PHP к приведенному выше коду в functions.php файл?
wp_register_script( 'jqueryexample', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jqueryexample.min.js');
Я в порядке с HTML и CSS, но PHP и JAVA для меня относительно новы, любая помощь будет очень признательна.
Спасибо,
Муравей
2 answers
Вы на правильном пути, но не хватает одной детали:
add_action('wp_enqueue_scripts', 'my_scripts_method');
Add_action позволяет запускать код в определенное время во время загрузки страницы /определенных событий. Описанное выше действие указывает WP запускать вашу функцию при добавлении сценариев в элемент html head. Ваша функция, в свою очередь, инструктирует WP добавить скрипт jQuery.
То же самое касается регистрации нового скрипта, но с другим крючком:
add_action('wp_enqueue_scripts', 'my_register_script_method');
function my_register_script_method () {
wp_register_script( 'jqueryexample', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jqueryexample.min.js');
}
Если вы переопределяете предварительно зарегистрированный скрипт, вам также следует сначала отмените регистрацию этого сценария. Я использую что-то вроде следующего кода для замены скрипта jquery (примечание: прочитайте 2-е редактирование в конце):
function my_register_script_method () {
wp_deregister_script('jquery');
wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jqueryexample.min.js');
}
Относительно того, куда вы должны поместить этот код. Если код специфичен для темы, вы должны поместить его в functions.php в папке вашей темы. Если вы собираетесь повторно использовать код в нескольких темах, было бы проще поддерживать плагин со всем общим кодом.
Редактировать:
Как отмечает Стивен Харрис ниже, начиная с WP 3.3 вы также можете использовать wp_enqueue_scripts
после wp_head
срабатывает, например, в шорткодах или виджетах. Затем js будет загружен в нижний колонтитул.
Правка 2: Для jQuery и других библиотек, размещенных в Google, рекомендуется использовать http://wordpress.org/extend/plugins/use-google-libraries / Прочитайте комментарии для мотивации Отто.
Вы должны использовать wp_enqueue_script
для загрузки скрипта для вашей темы, функция wp_register_script
регистрирует скрипт только с ключевым словом.
wp_register_script( 'jqueryexample', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jqueryexample.min.js');
Это просто зарегистрирует новый скрипт с именем jqueryexample
, и вы можете загрузить этот скрипт при необходимости, используя функцию wp_enqueue_script
.
Вот пример кода для загрузки уже зарегистрированного скрипта, т.е. jQuery, и нового собственного скрипта, т.е. Примера jQuery
<?php
function wpse_60056_load_scripts() {
wp_enqueue_script( 'jquery' );
wp_register_script( 'jqueryexample', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jqueryexample.min.js');
wp_enqueue_script( 'jqueryexample' );
}
add_action('wp_enqueue_scripts', 'wpse_60056_load_scripts');
?>
Однако вы можете использовать только функцию wp_enqueue_scripts
для загрузки удаленного JavaScript, вот пример -
wp_enqueue_script('jqueryexample','http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jqueryexample.min.js');