Intereting Posts
Зарегистрироваться / получить боковую панель? Миграция в WordPress – но как это будет делать «структурированные» данные? Переполнение поля списка гравитации и добавление javascript Как предотвратить удаление options.php существующих данных из базы данных Ссылка на значения метаданных третьей стороны AJAX загружает больше сообщений, не используя правильную категорию, и повторяет те же самые сообщения Cant удалить строку, которая появляется над содержимым страницы Как ленить Загрузка только выбранных изображений на выбранные страницы? Вставить div после h2 в контент Проблема с is_page & wp_redirect Короткий контент по символам Как заставить элемент меню верхнего уровня не иметь ссылку, но есть подменю, которые связаны? автомобильная листинговая страница, показывающая пробел, но с поиском работает отлично Заказывать сообщения (по всему сайту) по дате метаданных Импортированный контент не отображается во внешнем интерфейсе

Между функциями.php, виджетами и плагинами, которые загружаются первыми?

Клиент спрашивает, может ли викторизироваться конкретный карусельный плагин, который он использует. Это означает, что я должен создать виджет внутри функции functions.php, который вызывает функцию плагина. Это означает, что сначала нужно загрузить код плагина, чтобы функция была доступна для wordpress при загрузке файла functions.php, правильно? Будет ли это работать?

Solutions Collecting From Web of "Между функциями.php, виджетами и плагинами, которые загружаются первыми?"

Плагины загружаются прямо перед темой (да, я искал оправдания, чтобы использовать это):

введите описание изображения здесь

Однако неправильно думать об этом как о выполнении кода. В большинстве случаев все должно быть подключено и выполнено не раньше, чем init hook. Согласно регистрации виджета Codex с register_widget() следует подключиться к widget_init .

Из-за этого порядок загрузки не имеет значения для этого случая, у вас будет все, загруженное виджетами времени, которое ему нужно в любом случае.

Один интересный подход состоял бы в том, чтобы перечислить все крючки в файл в последовательности выполнения.

 add_action( 'all', '_20161224_printer' ); function _20161224_printer( $r ){ $line = microtime(true)*10000 . ' ' . $r . "\n"; $fp = fopen( ABSPATH . 'hooks.txt', 'a+'); fwrite($fp, $line); fclose($fp); } 

И вы получите результат следующим образом:

 14825992300742 pre_option_blog_charset 14825992300743 option_blog_charset 14825992300743 plugins_loaded 14825992300744 load_default_widgets 14825992300745 load_default_embeds 14825992300745 wp_audio_extensions 14825992300745 wp_audio_embed_handler 14825992300746 wp_video_extensions 14825992300746 wp_video_embed_handler 14825992300746 sanitize_comment_cookies 14825992300747 pre_option_permalink_structure 14825992300747 option_permalink_structure 14825992300748 pre_option_wp_user_roles 14825992300748 option_wp_user_roles 14825992300749 wp_roles_init 14825992300749 setup_theme 14825992300749 pre_option_template 14825992300750 option_template 14825992300750 template 14825992300750 theme_root 14825992300751 template_directory 14825992300751 pre_option_stylesheet 14825992300751 option_stylesheet 14825992300751 stylesheet 14825992300752 theme_root 14825992300752 stylesheet_directory 14825992300752 pre_option_WPLANG 14825992300753 query 14825992300754 default_option_WPLANG 14825992300755 locale 14825992300755 override_unload_textdomain 14825992300755 unload_textdomain 14825992300755 override_load_textdomain 14825992300756 load_textdomain 14825992300756 load_textdomain_mofile 14825992300756 locale ... many many more action hooks ... 14825992302886 wp_parse_str 14825992302886 nonce_life 14825992302886 salt 14825992302886 wp_parse_str 14825992302887 esc_html 14825992302887 logout_url 14825992302887 clean_url 14825992302887 gettext 14825992302887 wp_after_admin_bar_render 14825992302888 pre_option_template 14825992302888 option_template 14825992302888 template 14825992302888 theme_root 14825992302888 template_directory 14825992302889 parent_theme_file_path 14825992302889 shutdown 

Обратите внимание, что полный список просто не может соответствовать ограничению 30 000 символов на пост WPSO, поэтому я удалил множество крючков действий.

Поместите вышеуказанный код внутри плагина. Если вы делаете это из тем functions.php вы не поймаете plugins_loaded . Еще одно доказательство, что плагины загружаются перед темой.

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

Я просто назвал это из /?p=1 или страницы Hello World.

Если у вас нет одного подключаемого модуля, вы можете поместить этот код в папку mu-plugins .

Возможно, лучше использовать WP FS API , но этот способ очень краток.

Вы можете иметь виджет внутри .php-файла плагина (и иметь общую глобальную переменную, которую они могут использовать), если это то, о чем вы просите. Вот учебник с образцом кода, на который я наткнулся некоторое время назад.

Кроме того, вот список действий, выполняемых во время типичного запроса , в порядке выполнения. # 2 и # 10 предполагают, что сначала загружаются плагины; не уверен в функциях.php.