Intereting Posts
Нужна помощь для показа одной и той же страницы на первой странице, страницы с поисковой страницей и портфолио Выделение текущей категории на странице «Архив и каналы» Как использовать файл wp-cli.yml? Переадресация мобильных телефонов Blackberry Примечание: Неопределенный индекс: исправить с isset wp_get_attachment_metadata () извлекает метаданные WP или EXIF? Сделать ссылку вкладки страницы в pdf Домашняя страница Pagination – Другие страницы не перенаправляются на шаблон главной страницы Загрузка папки недоступна для записи, даже если разрешения правильные Вставить Документы Google в WordPress? Как отобразить большинство комментариев для прошедшей недели Пользовательская роль пользователя Почему мне приходится вручную одобрять комментарии одного из моих пользователей, у которых уже есть одобренный комментарий? Есть ли документация жизненного цикла плагина? Соединение было отказано в locahost после импорта базы данных?

Использование wp_enqueue_script в обработчике функции shortcode

У меня есть этот код

function this_is_my_shortcode(){ wp_register_script('per-pas-belanja-online', plugins_url('js/per-pas-belanja-online.js', __FILE__), array('jquery'), '1.0.0'); wp_enqueue_script('per-pas-belanja-online'); return '<div id="poppedout">Blah</div>'; } add_shortcode('bubba', 'this_is_my_shortcode'); 

На странице отображается div, но сценарий – нет. Какую ошибку я сделал?

Solutions Collecting From Web of "Использование wp_enqueue_script в обработчике функции shortcode"

Прямо из Кодекса

Используйте действие wp_enqueue_scripts для вызова этой функции или admin_enqueue_scripts чтобы вызвать его на стороне администратора. Вызов за пределами действия может привести к неприятностям.

Как отмечал @Bainternet, начиная с 3.3, он должен отлично работать для js (описанный здесь scribu). Для тех, кто хочет условно загрузить css, это все еще сложно, но эти две статьи пива и одна из них должны проложить путь.

Вы должны ставить в очередь сценарии, подобные этому:

 function this_is_my_shortcode(){ add_action('wp_enqueue_scripts', function() { wp_register_script('per-pas-belanja-online', plugins_url('js/per-pas-belanja-online.js', __FILE__), array('jquery'), '1.0.0'); wp_enqueue_script('per-pas-belanja-online'); }); return '<div id="poppedout">Blah</div>'; } add_shortcode('bubba', 'this_is_my_shortcode');