Срабатывает в подвале страницы. В момент этого события обычно подключаются скрипты, стили и т.д. Это один из основных хуков темы!

Click here to view original web page at wp-kama.ru

Кроме темы, это событие активно используется самим 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 */
...