Intereting Posts
Как использовать кеш с simplepie Пользовательское поле для роли? Несколько устройств wordpress website Импортируйте только новые статьи из Joomla в WordPress Пользовательские типы сообщений WordPress прерывают постоянную ссылку на тему переустановки Как обновить полосу прокрутки при использовании прокрутки Inifnite Jetpack? Как удалить все сообщения, категории и теги из базы данных WordPress Обновить существующий сайт до версии 3.5 Ожидание пользовательской ссылки в меню Должен ли я найти / заменить значения в _content? Необходимо изменить все ссылки в содержимом страницы, но не в сообщении. Добавить пользовательский цвет текста WordPress 3.9 TinyMCE 4 Визуальный редактор Как установить кнопки Facebook, Google+ и Twitter LIKE для каждого отдельного сообщения на главной странице? Использование $ post-> post_name в id тела, вызывающее ошибку: попытка получить свойство не объекта JS-скрипт не включен

Установите атрибут wmode на прозрачный для встроенного короткого кода, чтобы выпадающее меню зависало над вложением YouTube в Internet Explorer

Когда вы наводите курсор на мое раскрывающееся меню, используя IE8 или IE9, div меню будет отображаться за вложением YouTube. Он отлично работает во всех других браузерах.

После исследования я узнал, что многие другие имеют одну и ту же проблему, и решение заключается в том, wmode атрибут wmode был transparent . Например, <iframe width="578" height="325" src="http://www.youtube.com/embed/XXXX?wmode=transparent"></iframe> или <param name="wmode" value="transparent" /> .

Мой вопрос заключается в том, как настроить WordPress wmode чтобы атрибут wmode был transparent ?

Вы можете отфильтровать вывод HTML для oEmbed с помощью oembed_result . Теперь проверьте HTTP-хост URL-адреса для www.youtube.com и добавьте параметр.

Результат oEmbed кэшируется в метаполе post, чтобы избежать слишком большого количества запросов. Чтобы обновить старые сообщения, я добавил помощника активации, который очищает только содержимое кэширования только для Youtube.

 <?php # -*- coding: utf-8 -*- /* Plugin Name: Add 'wmode' to video embeds */ register_activation_hook( __FILE__, 't5_clear_oembed_cache' ); add_filter( 'oembed_result', 't5_oembed_wmode', 10, 2 ); /** * Add "wmode=transparent" query string to youtube embeds. * * @wp-hook oembed_result * @param string $html * @param string $url * @return string */ function t5_oembed_wmode( $html, $url ) { if ( 'www.youtube.com' !== parse_url( $url, PHP_URL_HOST ) ) return $html; return str_replace( '=oembed', '=oembed&amp;wmode=transparent', $html ); } /** * Clear oEmbed cache for all youtube embeds. * * @return void */ function t5_clear_oembed_cache() { global $wpdb; $posts = $wpdb->get_results( "SELECT post_id, meta_key FROM `$wpdb->postmeta` WHERE `meta_key` LIKE '_oembed%' AND `meta_value` LIKE '%youtube%'" ); if ( ! $posts ) return; /* return print '<pre>$posts = ' . htmlspecialchars( print_r( $posts, TRUE ), ENT_QUOTES, 'utf-8', FALSE ) . "</pre>\n"; /*/ foreach ( $posts as $post ) delete_post_meta( $post->post_id, $post->meta_key ); /**/ } 

Помните, что этот атрибут делает видео недоступным для пользователей программы чтения с экрана , поэтому они не могут их слушать. Поэтому лучшим вариантом было бы использовать вывод HTML5 из ​​Youtube.

Это ужасная идея, так как Flash-ролики с прозрачным wmode недоступны для слепых пользователей с помощью прошивок. Слепые люди любят слушать видео, прежде чем снова появится старый каштан. Используйте встроенное видео HTML5, чтобы заставить его работать для всех, а пользователи IE8 получают ссылку на YouTube. Не заставляйте вашу доступность страдать, потому что старый IE был ужасен при встраивании.