is_header_video_active()
Определяет, можно ли отображать видео в области “custom‑header” на текущей странице. Условный тег.
Эта функция отвечает за проверку на какой странице показывать видео в шапке если оно есть. Такое видео по умолчанию показывается только на главной странице сайта см. is_front_page().
Как работает (по шагам):
-
Функция сначала проверяет, включена ли у темы поддержка видео в шапке через get_theme_support( 'custom-header', 'video' ).
Включается поддержка в functions.php темы через add_theme_support():
add_theme_support( 'custom-header', [ 'video'=>true ] );
-
Затем получает callback
video-active-callback
. Если он есть то выполняется он, чтобы определить активно ли видео в шапке, если его нет то считатеся что видео можно показывать, но только на главной странице. Коллбэк:$video_active_cb = get_theme_support( 'custom-header', 'video-active-callback' );
- Перед возвратом результат фильтруется через is_header_video_active.
Эта функция не проверяет установлено ли видео заголовка, а отвечает за проверку нужно ли его показывать.
Используйте has_header_video(), чтобы проверить установлено ли видео заголовка.
Изменение проверки
Эта функция является оберткой для функции указанной в параметре video-active-callback, при регистрации поддержки add_theme_support('custom-header'). Допустим, при регистрации видео заголовка мы указали параметры так:
add_theme_support( 'custom-header', [ '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' $show_video = is_page( 'about' ); return $show_video; }
И теперь функция всегда будет возвращать true
на странице /about
и false
на всех остальных страницах.
Хуки из функции
Возвращает
true|false
. true - если видео должно показываться не текущей странице. false - в противном случае.
Использование
if( has_header_video() && is_header_video_active() ){ // ... }
Примеры
#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 | Введена. |