is_header_video_active() WP 4.7.0

Перевіряє, чи потрібно показати наявне відео заголовка на поточній сторінці. Умовний тег.

З версії 4.7 з’явилася можливість встановлювати відео заголовка , крім картинки заголовка. Відео дозволяє привернути більше уваги та залишає більше враження про сайт.

Ця функція відповідає за перевірку, на якій сторінці показувати таке відео. Таке відео за замовчуванням відображається лише на головній сторінці сайту див. is_front_page() .

Функція поверне false якщо підтримка відео не включена, включається вона так у functions.php теми:

get_theme_support( 'custom-header', array('video'=>true) );

Майте на увазі, що ця функція не перевіряє чи встановлено відео заголовка, а чи перевірять чи потрібно його показувати. Щоб перевірити, чи встановлено відео заголовка, використовуйте has_header_video()

Зміна перевірки

Ця функція є обгорткою для функції вказаної у параметрі video-active-callback при реєстрації підтримки add_theme_support(‘custom-header’) . Припустимо, при реєстрації відео заголовка ми вказали параметри так:

add_theme_support( 'custom-header', array(
	'video' => true,
	'video-active-callback' => 'is_home',
));

Тоді робота цієї функції буде передаватися is_home() і те, що поверне вона поверне і ця функція.

Однак це поведінка можна перебити через хук is_header_video_active . Через цей хук ми можемо перевизначити перевірку і те, що поверне ця функція. Наприклад так:

add_filter( 'is_header_video_active', 'my_is_header_video_active' );
function my_is_header_video_active( $show_video ){
	// Дозволимо показ відео заголовка тільки на сторінці 'about'
	if( is_page('about') )
		$ show_video = true;
	else
		$ show_video = false;

	return $show_video;
}

І тепер is_header_video_active() завжди буде повертати true на сторінці /about і false на всіх інших сторінках. І не важливо, що встановлено в параметрі video-active-callback .

Основа для:
has_custom_header()

Хуки з функції

Повертає

true|false. true – якщо відео має відображатися на поточній сторінці. false – інакше.

Використання

if( has_header_video() && is_header_video_active() ){
	// ...
}

Приклади

0

#1 Виведемо відео заголовка

Перевіримо, чи є відео заголовка і чи має воно виводитися на поточній сторінці. Якщо все ОК, то показуємо плеєр з відео, що програється.

## перевіримо чи є відео заголовка і воно має відображатися на поточній сторінці.
if( has_header_video() && is_header_video_active() ){
	the_custom_header_markup();
	// url на відео - get_header_video_url()
}

В результаті в місці цього коду з’явиться HTML код відео програвача, і на сторінку (наприкінці) будуть підключені потрібні для програвача скрипти:

<div id="wp-custom-header" class="wp-custom-header">
	<video id="wp-custom-header-video" autoplay="" loop="" width="954" height="1300" src="http://example.com/wp-content/uploads/2017/ 01/polina.mp4"></video>
	<button type="button" id="wp-custom-header-video-button" class="wp-custom-header-video-button wp-custom-header-video-play">Пауза</button>
</div>

Скрипти у підвалі:

<script type='text/javascript' src='http://example.com/wp-includes/js/wp-custom-header.min.js'></script>

<script type='text/javascript' src='http://example.com/wp-includes/js/mediaelement/mediaelement-and-player.min.js'></script>

<script type='text/javascript' src='http://example.com/wp-includes/js/mediaelement/wp-mediaelement.min.js'></script>

список змін

З версії 4.7.0Введено.

Код is_header_video_active() WP 6.0.2

function is_header_video_active() {
	if ( ! get_theme_support( 'custom-header', 'video' ) ) {
		return false;
	}

	$video_active_cb = get_theme_support( 'custom-header', 'video-active-callback' );

	if ( empty( $video_active_cb ) || ! is_callable( $video_active_cb ) ) {
		$ show_video = true;
	} else {
		$ show_video = call_user_func( $video_active_cb );
	}

	/**
	 * Filters whether the custom header video is eligible to show on the current page.
	 *
	 * @ Since 4.7.0
	 *
	 * @param bool $show_video Whether the custom header video should be shown. Returns the value
	 * of the theme setting for the `custom-header`s `video-active-callback`.
	 * Якщо не callback is set, the default value is that of `is_front_page()`.
	 */
	return apply_filters( 'is_header_video_active', $ show_video );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *