Intereting Posts
Темы для детей и обновление родительской темы Плагин для встраивания локального видео в WordPress? Изменение размера изображения родительской темы Перенос статического сайта в WordPress и сохранение категории по месяцам Переопределение абсолютных URL-адресов из других доменов и из тестового домена Разделите HTML-комментарии от плагинов в заголовке / нижнем колонтитуле Домашняя страница показывает недавнюю публикацию, ранговую запись serps на главной странице Язык толстого слова WordPress Доступ к функциям цикла (например, the_title или the_content) из идентификатора сообщения как программно редактировать мета-описание открытого графика и в каком файле Вход с использованием / wp-admin не перенаправляет обратно в / wp-admin Автор сообщения изменен на admin после того, как его сообщение изменено администратором Исправить сломанную миграцию WordPress и принудительное преобразование страниц в сообщения Адреса WordPress MU и вложенных сайтов? Нужно ли мне префиксные переменные внутри функции?

Скрипт регистрации в подключаемом виджете

Мне нужно загрузить отдельный файл js в виджет и просто не могу заставить его работать. До сих пор

if ( is_active_widget( false, false, $this->id_base, true ) ) { function tab_widget_scripts() { wp_register_script( 'tabs', plugins_url( 'tabs.js', __FILE__ ), array(), false, true ); wp_enqueue_script( 'tabs.js' ); } } 

в моей function __construct() а затем

 do_action( 'wp_print_footer_scripts', 'tab_widget_scripts' ); 

внутри public function widget( $args, $instance ) . Может ли кто-нибудь сказать мне, что я делаю неправильно?

Есть 3 вопроса.

Во-первых, вы вызываете do_action , вызывая действие:

 do_action( 'wp_print_footer_scripts', 'tab_widget_scripts' ); 

Фактически, вы хотите добавить к нему свою функцию, а не запускать ее. Вы должны это делать:

 add_action( 'wp_print_footer_scripts', 'tab_widget_scripts' ); 

Во-вторых, вы регистрируете этот скрипт:

 tabs 

Затем запустив этот скрипт:

 tabs.js 

Ясно, что они не совпадают, так же, как если бы я дал вам ингредиенты для торта, тогда скажите вам сделать латте, это не сработает.

В-третьих, вы определяете функцию только в том случае, если виджет отображается во внешнем интерфейсе. Это немного странно, вместо этого вы должны использовать add_action в своей функции в своем классе виджетов и всегда определять его, сохраняя ненужный вызов is_active_widget

do_action должно быть add_action – вы добавляете функцию в очередь, а не выполняете все функции, подключенные к действию. Тем не менее, вам не нужно перехватывать отдельную функцию, вы можете просто вставить непосредственно в функцию виджетов, если хотите.