Intereting Posts
Как настроить первый img в каждом сообщении wordpress с помощью CSS Вывести 2 элемента в пределах цикла Как удалить_query_arg () для paginate_links () Как проверить, если комментарии разбиты на страницы? Максимальное количество сообщений в сети (многосетевое соединение WP) Код jQuery не запускается на странице, несмотря на регистрацию и запуск сценариев Включение php-файла в каталог выше установки WordPress Как добавить подменю в меню, созданное wp_nav_menu, с помощью плагина $ wpdb-> base_prefix не получает родительский префикс сайта в многопользовательском режиме Добавление разделителей или разделителей между элементами меню Nav Как настроить эскиз в качестве отображаемого изображения? Использование стандартных метаданных в коротком коде Автоматически выбирать категории в новой должности на основе значения GET WordPress 3.8.3. пользовательская тема – слайдеры не будут загружать файлы js / css Как добавить класс в элемент вывода html в выпадающем меню пункта tinyMCE

Воспроизвести видео только на главной странице

У меня есть видео на моей домашней странице, и я добавил JavaScript ниже, чтобы убедиться, что он играет / петли и т. Д. Что все работает нормально.

Однако на других страницах сайта javascript эффективно ломается и влияет на функциональность сайта. Когда я смотрю в консоли, я получаю сообщение о том, что «не может готово свойство« играть »в null.

Код выбирает только элемент видео на .page-id-36, но почему же JS ищет элемент на других страницах?

код:

var imagineVideo = document.querySelector('.page-id-36 .et_pb_video_box video'); imagineVideo.play(); imagineVideo.loop = true; imagineVideo.controls = false; 

Любая помощь / советы были бы замечательными.

Эмили

querySelector() возвращает null если совпадений не найдено, поэтому оберните код, который зависит от imagineVideo в условном выражении.

 var imagineVideo = document.querySelector('.page-id-36 .et_pb_video_box video'); if ( imagineVideo ) { imagineVideo.play(); imagineVideo.loop = true; imagineVideo.controls = false; } 

Если вы хотите, чтобы этот код загружался на главной странице, вы можете поместить его в отдельный файл и только поставить его в очередь, если просматривается домашняя страница. Например, вы разместили код выше в {your-theme}/js/homepage-video.js . Затем вы ставите в очередь как основной сценарий видеопроигрывателя, так и homepage-video.js :

 add_action( 'wp_enqueue_scripts', 'wpse_homepage_video_script' ); function wpse_homepage_video_script() { if ( is_front_page() ) { // Enqueue the main video player. wp_enqueue_script( 'video-player', get_stylesheet_directory_uri() . '/js/video-player.js', array(), null, true ); // Enqueue the JS that controls the video on the homepage. wp_enqueue_script( 'wpse-homepage-video', get_stylesheet_directory_uri() . '/js/homepage-video.js', array( 'video-player' ), null, true ); } }