Кроме темы, это событие активно используется самим WordPress и многими плагинами.
Это событие вызывается одноименной функцией wp_footer(), которая в свою очередь вызывается в файле темы footer.php
.
Вызов функции wp_footer()
обязателен для всех тем (шаблонов) WordPress! Делается так:
В момент этого события срабатывает очень много «родных» функций 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 );
Использование
add_action( 'wp_footer', 'action_function_name_2472' ); function action_function_name_2472(){ // action... }
Примеры
#1 Выведем произвольный 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 }
#2 Добавим 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 }
Где используется хук
Код хука-события wp_footer
... } /** * Fire the wp_footer action. * * See {@see 'wp_footer'}. * * @since 1.5.1 */ function wp_footer() { /** * Prints scripts or data before the closing body tag on the front end. * * @since 1.5.1 */ do_action( 'wp_footer' ); } /** * Display the links to the general feeds. * * @since 2.8.0 * * @param array $args Optional arguments. */ function feed_links( $args = array() ) { if ( !current_theme_supports('automatic-feed-links') ) return; $defaults = array( /* translators: Separator between blog name and feed type in feed links */ ...