WordPress.org

Ready to get started?Download WordPress

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Справочник по функциям/wp enqueue script

Описание

Безопасный путь добавления JavaScript в страницу, сгенерированную WordPress.

Использование

<?php wp_enqueue_script$handle$src$deps$ver ); ?> Эта функция должна вызываться в привязке к действию wp_enqueue_scripts (для внешней части сайта), admin_enqueue_scripts (для панели управления) или login_enqueue_scripts (для страницы входа).

Параметры

$handle
(string) (required) Название скрипта (рабочее название). Строка в нижнем регистре.
Default: None
$src
(string) (optional) Путь до скрипта от корневой директории WordPress. Например: "/wp-includes/js/scriptaculous/scriptaculous.js". Этот параметр необходим только в случае, если WordPress еще не знает об этом скрипте.
Default: None
$deps
(array) (optional) Массив названий скриптов от которых зависит этот скрипт; скрипты которые должни быть загружены перед этим скриптом. false в случае если нет зависимостей. Этот параметр необходим только в случае, если WordPress еще не знает об этом скрипте.
Default: None
$ver
(string) (optional) Строка указывающая версию скрипта, если она у него есть. По умолчанию false. Этот параметр используется для того чтобы удостовериться, что клиент получил верную версию скрипта, а не из кеша.
Default: None

Примеры

Примечание: Это функция не будет работать, если она вызвана из действия wp_head или wp_print_scripts, поскольку на момент выполнения этих действий скрипты уже должны быть добавлены в очередь. Корректные действия описаны в секции «Использование».

Загружаем штатный скрипт WordPress с нестандартного адреса

Замечание: В темах оформления не рекомендуется использовать сторонние JavaScript- или CSS-файлы по умолчанию, поскольку это ставит пользователей в зависимость от внешнего сервера, к которому у них нет доступа. Гораздо лучше использовать или рекомендовать плагин наподобие Use Google Libraries, который автоматически подключает с серверов Google CDN библиотеку jQuery той же версии, что используется в самом WordPress. Это снижает риск нарушения работы сайта плагинами и темами, в которых жёстко прописаны их собственные копии файла.

Допустим, вы хотите вместо библиотеки jQuery из состава WordPress подключить её CDN-копию. Добавьте этот код в файл functions.php активной темы:

<?php
function my_scripts_method() {
    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js');
    wp_enqueue_script( 'jquery' );
}    
 
add_action('wp_enqueue_scripts', 'my_scripts_method');
?>

Используя фильтр wp_enqueue_scripts (вместо фильтра init hook, на который ссылаются некоторые статьи на сторонних сайтах), мы избегаем регистрации альтернативной версии jQuery на страницах панели управления, что (среди прочего) снижает риск нарушения работы редактора записей при обновлении.

Загружаем скрипт scriptaculous

<?php
function my_init_method() {
    wp_enqueue_script('scriptaculous');            
}    
 
add_action('wp_enqueue_scripts', my_init_method);
?>

Загружаем скрипт, зависящий от scriptaculous

Добавим и загрузим новый скрипт, который зависит от scriptaculous (это также вызывет загрузку scriptaculous на странице):

<?php
wp_enqueue_script('newscript',
 '/' . PLUGINDIR . '/someplugin/js/newscript.js',
 array('scriptaculous'),
 '1.0' );
?>

Загружаем скрипты плагина только на его страницах

<?php

    /*
     * Этот пример будет работать как минимум на WordPress 2.6.3,
     * хотя возможно и на более ранних версиях.
     */

    add_action('admin_init', 'my_plugin_admin_init');
    add_action('admin_menu', 'my_plugin_admin_menu');
    
    function my_plugin_admin_init()
    {
        /* Регистрируем наш скрипт. */
        wp_register_script('myPluginScript', WP_PLUGIN_URL . '/myPlugin/script.js');
    }
    
    function my_plugin_admin_menu()
    {
        /* Регистрируем страницу нашего плагина */
        $page = add_submenu_page( 'edit.php', 
                                  __('Мой плагин', 'myPlugin'), 
                                  __('Мой плагин', 'myPlugin'), 9,  __FILE__, 
                                  'my_plugin_manage_menu');
   
        /* Используем зарегистрированный хендл страницы 
           чтобы добавить хук на загрузку скриптов */
        add_action('admin_print_scripts-' . $page, 'my_plugin_admin_scripts');
    }
    
    function my_plugin_admin_scripts()
    {
        /*
         * Эта функция будет вызвана только на странице плагина, 
           поставим наш скрипт в очередь здесь */
        wp_enqueue_script('myPluginScript');
    }
    
    function my_plugin_manage_menu()
    {
        /* Output our admin page */
    }
    
?>

Скрипты, по умолчанию включенные в WordPress

Примечание: Библиотека jQuery, включенная в WordPress, загружается в режиме «no conflict». Чтобы использовать функцию $ как обычно, напишите следующее:

jQuery(document).ready(function($) {
    // $() будет работать как ссылка на jQuery() внутри этой функции

});
Название скрипта Рабочее название
Scriptaculous Root scriptaculous-root
Scriptaculous Builder scriptaculous-builder
Scriptaculous Drag & Drop scriptaculous-dragdrop
Scriptaculous Effects scriptaculous-effects
Scriptaculous Slider scriptaculous-slider
Scriptaculous Sound scriptaculous-sound
Scriptaculous Controls scriptaculous-controls
Scriptaculous scriptaculous
Image Cropper cropper
SWFUpload swfupload
SWFUpload Degarade swfupload-degrade
SWFUpload Queue swfupload-queue
SWFUpload Handlers swfupload-handlers
jQuery jquery
jQuery Form jquery-form
jQuery Color jquery-color
jQuery UI Core jquery-ui-core
jQuery UI Tabs jquery-ui-tabs
jQuery UI Sortable jquery-ui-sortable
jQuery UI Draggable jquery-ui-draggable
jQuery UI Droppable jquery-ui-droppable
jQuery UI Selectable jquery-ui-selectable
jQuery UI Resizable jquery-ui-resizable
jQuery Interface interface
jQuery Schedule schedule
jQuery Suggest suggest
ThickBox thickbox
Simple AJAX Code-Kit sack
QuickTags quicktags
ColorPicker colorpicker
Tiny MCE tiny_mce
Prototype Framework prototype
Autosave autosave
WordPress AJAX Response wp-ajax-response
List Manipulation wp-lists
WP Common common
WP Editor editor
WP Editor Functions editor-functions
AJAX Cat ajaxcat
Admin Categories admin-categories
Admin Tags admin-tags
Admin custom fields admin-custom-fields
Password Strength Meter password-strength-meter
Admin Comments admin-comments
Admin Users admin-users
Admin Forms admin-forms
XFN xfn
Upload upload
PostBox postbox
Slug slug
Post post
Page page
Link link
Comment comment
Admin Gallery admin-gallery
Media Upload media-upload
Admin widgets admin-widgets
Word Count word-count
WP Gears wp-gears
Theme Preview theme-preview

Ресурсы

This article is marked as in need of editing. You can help Codex by editing it.