¿Estás buscando una forma de agregar el parámetro wmode a los oEmbeds? oEmbed convertirá una URL de YouTube o cualquier enlace similar en un video incrustado sin necesidad de agregar ningún HTML. Si bien probablemente exista un plugin para esto, hemos creado un fragmento de código rápido que puedes usar para insertar el parámetro wmode en los oEmbeds en WordPress.
Instrucciones:
Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a un plugin específico del sitio:
add_filter( 'oembed_result', 'slt_wmode_opaque', 10, 3 );
function slt_wmode_opaque( $html, $url, $args ) {
if ( strpos( $html, '<param name="movie"' ) !== false )
$html = preg_replace( '|</param>|', '</param><param name="wmode" value="opaque"></param>', $html, 1 );
if ( strpos( $html, '<embed' ) !== false )
$html = str_replace( '<embed', '<embed wmode="opaque"', $html );
return $html;
}
Sitios web compatibles: YouTube, Vimeo, DailyMotion, blip.tv, Flickr, Viddler, Hulu, Qik, Revision3, Scribd, Photobucket, PollDaddy, Google Video, WordPress.tv, SmugMug, FunnyOrDie.com
Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo copiar / pegar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.
Si te gustó este fragmento de código, considera revisar nuestros otros artículos en el sitio como: Cómo crear un formulario de varias páginas en WordPress y Los 43 mejores temas de fotografía para WordPress.
Perdón por el comentario tonto, pero ¿cómo puedo implementar eso?
Paso 1: copia el código proporcionado en mi archivo functions.php
Paso 2: ¿?
Seguí el paso 1 pero nada funciona
¡Esta es la primera solución que he encontrado para este problema que (casi por completo) funciona! ¡Te agradezco! Sin embargo, todavía tengo el mismo problema cuando cargo mi sitio en Chrome (15.0.874.121) para OSX. Firefox funciona muy bien. Safari funciona muy bien. Todavía no he probado en ningún navegador de Windows. ¿Sabes si hay algo específico en Chrome que cause que esta solución no funcione, y hay alguna opción para abordar esto?
Esta función no es específica del navegador, ya que se ejecuta en el servidor. sin embargo, ¿quieres decir que el parámetro wmode no funciona en Chrome?
Eso es correcto. Parece no tener ningún efecto al ver mi sitio en Chrome. El menú desplegable todavía aparece detrás del video incrustado. Pero solucionó el problema en Safari y Firefox.
Ahh, ya veo. Bueno, para que tu menú funcione, necesitarías cambiar el parámetro a “transparent” en lugar de “opaque”. Eso debería solucionar las cosas. Está en las líneas 4 y 6.
Hrmm… Intenté cambiarlo a transparent, pero eso no tuvo ningún efecto en Chrome.
Parece que también necesitarías definir un z-index en el objeto flash.
Ok, entonces… sobre el tema de definir un z-index… el problema que tengo es que estoy intentando incrustar videos de YouTube simplemente incluyendo el enlace de YouTube en línea en la publicación. Si hay un parámetro adicional que pueda agregar al enlace de YouTube para definir el z-index, no lo conozco. Tal como estoy ahora, funciona en todos los navegadores que he probado excepto en Chrome (que, lamentablemente, ahora representa alrededor del 25% de mi tráfico). Pero he estado tratando de evitar volver a usar el código de incrustación por simplicidad. Parece que esto podría ser lo mejor que se puede lograr sin complicar el proceso de publicación para mis colaboradores.
No me refiero a eso, tu menú desplegable tendrá un z-index definido para que el menú se muestre encima del contenido. Leí algo y una cosa que encontré fue que decían que se debía establecer un z-index para el objeto, por ejemplo:
object, embed{
position:relative;
z-index:1;
}
solo asegúrate de que tu menú tenga un z-index más alto. Si sigues teniendo problemas, usa el formulario de contacto y puedo enviarte un correo electrónico sobre las cosas en lugar de usar los comentarios.