wp_footer
Срабатывает в подвале страницы. В момент этого события обычно подключаются скрипты, стили и т.д. Это один из основных хуков темы!
Кроме темы, это событие активно используется самим WordPress и многими плагинами.
Это событие вызывается одноименной функцией wp_footer(), которая в свою очередь вызывается в файле темы footer.php.
Вызов функции wp_footer() обязателен для всех тем (шаблонов) WordPress! Делается так:
... <?php wp_footer(); ?> </body> </html>
В момент этого события срабатывает очень много «родных» функций WordPress. Например, одна из таких функций добавляет подключенные через wp_enqueue_script() скрипты, для которых указано подключение в подвале.
Что срабатывает на этом хуке во фронтенде (по умолчанию в WordPress):
add_action( 'wp_footer', 'wp_print_footer_scripts', 20 ); add_action( 'wp_print_footer_scripts', '_wp_footer_scripts' ); add_action( 'wp_footer', 'wp_admin_bar_render', 1000 );
Есть еще одно аналогичное событие - wp_head. Оно вызывается функцией wp_head() в HEAD част документа, в файле header.php.
Использование
add_action( 'wp_footer', 'wp_kama_footer_action' ); /** * Function for `wp_footer` action-hook. * * @return void */ function wp_kama_footer_action(){ // action... }
Примеры
#1 Добавим HTML код в подвал
Допустим нам нужно на всех страницах добавить HTML код попапа:
<?php add_action( 'wp_footer', 'my_popup', 30 ); function my_popup(){ ?> <div id="my_popup" class="popup mfp-hide"> <div class="popup_inner"> <div class="popup_body"> <div class="popup_content"></div> </div> </div> </div> <?php }
#2 Выведем произвольный JS код в подвале
Это демонстрация того, как можно вывести JS код в конце HTML кода на любой странице сайта:
## JS в конце документа add_action( 'wp_footer', 'hook_javascript', 99 ); function hook_javascript(){ ?> <script> alert('Page are loaded.'); </script> <?php }
Или можно так (так даже правильнее, потому что сразу установлен приоритет побольше - 20):
## JS в конце документа add_action( 'wp_print_footer_scripts', 'hook_javascript' ); function hook_javascript(){ ?> <script> alert('Page are loaded.'); </script> <?php }
Список изменений
С версии 1.5.1 | Введена. |
Где вызывается хук
do_action( 'wp_footer' );
Где используется хук в WordPress
add_action( 'wp_footer', array( 'WP_Duotone', 'output_footer_assets' ), 10 );
add_action( 'wp_footer', 'block_core_image_print_lightbox_overlay' );
add_action( 'wp_footer', array( $this, 'customize_preview_settings' ), 20 );
add_action( 'wp_footer', array( $this, 'export_preview_data' ), 1 );
add_action( 'wp_footer', array( $this, 'export_preview_data' ), 20 );
add_action( 'wp_footer', array( $this, 'print_script_module_data' ) );
add_action( 'wp_footer', array( $this, 'print_a11y_script_module_html' ), 20 );
add_action( 'wp_footer', array( $this, 'export_preview_data' ), 1000 );
add_action( 'wp_footer', 'wp_print_footer_scripts', 20 );
add_action( 'wp_footer', 'wp_enqueue_global_styles', 1 );
add_action( 'wp_footer', 'wp_enqueue_stored_styles', 1 );
add_action( 'wp_footer', 'wp_maybe_inline_styles', 1 ); // Run for late-loaded styles in the footer.
add_action( 'wp_footer', 'wp_admin_bar_render', 1000 ); // Back-compat for themes not using `wp_body_open`.
add_action( 'wp_footer', 'the_block_template_skip_link' ); // Retained for backwards-compatibility. Unhooked by wp_enqueue_block_template_skip_link().
add_action( 'wp_footer', array( $this, 'print_router_markup' ) );
add_action( 'wp_footer', 'wp_underscore_playlist_templates', 0 );
add_action( 'wp_footer', 'wp_print_media_templates' );
remove_action( 'wp_footer', 'the_block_template_skip_link' );