Intereting Posts
Включить администраторов в раскрывающийся список автора на экране редактирования сообщений Могу ли я создать цикл с несколькими типами сообщений и указать разные $ args для каждого типа сообщения? Как отображать популярные сообщения на странице? Почему мой скрипт плагина не загружается в бэкэнд? Использование нескольких настроек_поле () на странице настроек 1 сделать другой шаблон на последних шести опубликованных публикациях Можно ли заказать несколько мета-ключей при использовании meta_value_num? Плагин WordPress с собственного сервера Когда WordPress не предоставляет файл .htaccess для новых многосайтовых сайтов из-за автоматического установщика CPanel Fantastico? Изменить CSS / форматирование на определенной странице, но не страницы в целом? Как разрешить авторизацию только определенным пользователям Uncaught ReferenceError: the_ajax_script не определен. Как это не определено? внутренний jQuery не будет работать Использование заголовка веб-сайта, меню и нижнего колонтитула в блоге WordPress Как узнать, активирован ли подключаемый модуль

Использование 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');