Úvodní stránka › Fórum podpory WordPressu › Problémy s WordPressem › menu a youtube chyba
Štítky: oEmbed, Průhlednost videa, YouTube, YouTube embed
Zvolené téma obsahuje celkem 13 odpovědí. Do diskuze (4 účastníci) se naposledy zapojil uživatel admin a poslední změna je stará 11 let, 11 měsíců.
-
AutorPříspěvky
-
1. května 2012 (21:44) #1583
Dobrý večer našel sem další problém http://www.imagehosting.cz/?v=erroryoutu.png
jsem někde kde je video a chci jít do menu tak to menu je pod tím videem jde to nějak vyřešit?Děkuji za odpověd:)
2. května 2012 (9:12) #11284Problém bude patrně s průhledností (transparentnost) embedovaného videa. Prozkoumejte prosím následující vlákno, kde se již podobný problém řešil.
2. května 2012 (11:30) #11285Děkuji..už sem to ale zkoušel a bohužel to nefunguje máte někdo jiný nápad?:)
2. května 2012 (11:33) #11286zde máte ještě soubor http://pastebin.com/v1GPGJ5D
functions.php zkoušel sem to dát všude ale nic bohužel nefungovalo
2. května 2012 (11:47) #112872. května 2012 (17:57) #11288vložím příspěvek a do něj kratký odkaz youtube
2. května 2012 (17:57) #11289nevíte tedy čim to muže byt? děkuji
2. května 2012 (18:37) #11290Ukázka na přímo na webu by nebyla? Určitě pomůže…
3. května 2012 (12:48) #11291A pokud není možné zveřejnit URL, tak nám alespoň řekněte šablonu, abychom to mohli vyzkoušet. Podle zveřejněných zdrojových kódů by to mohla být šablona UpStream (zdarma?), ale nejsem si zcela jist…
7. května 2012 (11:52) #11292omlouvám se nevšim jsem si že jste mi odpověděl,ano přesně tak jedná se o tuto šablonku,web sem moc dávat nechci abych nebyl obviněn z reklamy:) pošlu vám ji klidně na mail nebo mi napište zde frouter@seznam.cz .Děkuji moc:)
7. května 2012 (12:23) #11293Nikdo vás z reklamy neobviní :-) Pošlete tedy prosím URL na adresu pavelevap@separatista.net, zkusíme se na to podívat. Můžeme pak zkusit i uvedenou šablonu, ale problém může být způsoben nějakým specifickým nastavením a bylo by tedy ideální poslat i administrátorské přístupy k webu. Ale uvidíme…
7. května 2012 (13:15) #11294Nestačilo by pouze nastavit z-index v CSS souboru u toho menu na nějakou vyšší hodnotu?
7. května 2012 (14:18) #11295Všim jsem si že mi takto blbou i flash soubory….
Jak mám tu vyšší hodnotu přesně nastavit?
8. května 2012 (19:07) #11296Tak pokud jde o Youtube, tak už jsem to snad vyřešil.
Výše odkazovaný kód už bohužel nefunguje, protože Youtube změnilo své API a WordPress tak pomocí oEmbed dostává místo původního objectu s parametry nový HTML5 iframe. Celý kód se tak musí dost pozměnit. Celá problematika kódu, který je potřeba upravit, naleznete zde.
Do WordPressu tedy vkládáme URL adresu videa (v textové neklikací podobě):
http://www.youtube.com/watch?v=VSnhMDaEkeY
Navrací se nám pak kód:
<iframe width="300" height="225" src="http://www.youtube.com/embed/VSnhMDaEkeY?fs=1&feature=oembed" frameborder="0" allowfullscreen></iframe>
Bohužel ale potřebujeme do URL automaticky vložit parametr
wmode=transparent
, který zajistí průhlednost videa. Tedy, aby to vypadalo takto:<iframe width="300" height="225" src="http://www.youtube.com/embed/VSnhMDaEkeY?fs=1&feature=oembed&wmode=transparent" frameborder="0" allowfullscreen></iframe>
Jak na to? Jako první nás napadne kontrolovat obsah s pomocí filtru the_content. Stačí pak využít kombinaci funkcí strpos() a str_replace(), což je v tomto případě rychlejší než preg_replace() a mohlo by být hotovo:
function separatista_pridat_wmode_transparent( $html ) {
if ( strpos( $html, '<iframe' ) !== false ) {
$html = str_replace( 'feature=oembed', 'feature=oembed&wmode=transparent', $html );
}
return $html;
}
add_filter( 'the_content', 'separatista_pridat_wmode_transparent' );Ale správně už tušíte, že není :-) Tato funkce totiž zbytečně zpracovává obsah každého příspěvku a zvyšuje tak nároky na paměť i čas (i když v tomto případě nepatrně). Půjdeme tedy až ke zdroji a využijeme filtr embed_oembed_html, takže si budeme všímat pouze inkriminovaného HTML videa:
function separatista_pridat_wmode_transparent( $oembvideo ) {
$oembvideo = str_replace( 'feature=oembed', 'feature=oembed&wmode=transparent', $oembvideo );
return $oembvideo;
}
add_filter( 'embed_oembed_html', 'separatista_pridat_wmode_transparent' );A vida funkce pak je vlastně ještě jednodušší :-) Na webu otestováno, mělo by to fungovat. Vyzkoušejte, případně doplňte s jakými dalšími flashovými soubory je problém…
P.S. Možná by šlo ještě použít filtr oembed_result (příklad).
“Code is poetry” aneb “Programování je umění”.
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.