Intereting Posts
Цвет отличается для текущей категории Как добавить продукт в woocommerce с php-кодом Как я могу использовать встроенную функциональность WordPress «просматривать ссылки»? Фильтр поиска запросов в пользовательском таксономии WordPress, не отображающий сообщений в пустое поле Создание пользователей (пользователей) с помощью API настроек WP Media больше не загружает изображения Могу ли я запрашивать пользовательские метаданные через WP_Query Выровнять reCaptcha прямо на контактной форме 7 Изменение каталога загрузки только для загрузки плагинов Автоматически добавлять категорию в настраиваемый тип сообщения, используя категорию slug Невозможно подключить носитель, если возможности добавлены в пользовательский тип сообщения Отправить электронное письмо, содержащее HTML-текст и текстовую часть Пользовательский URL-адрес WordPress Повторно перенаправляет не маскировку Как подготовить HTML для WordPress Автоматическое увеличение кармы комментариев в комментариях

Установите атрибут 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 ?

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

Вы можете отфильтровать вывод 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 был ужасен при встраивании.