2013-02-18 5 views
5

Ich habe einen benutzerdefinierten Beitragstyp "video" und wollte Videos wie youtube, dailymotion in einem bestimmten Bereich mit WP default oembed script zeigen. So verwende ich ein benutzerdefiniertes Feld "Video-URL", aber das Problem ist, dass oembed in the_content nicht mit benutzerdefinierten Feld arbeiten. also wie kann ich das tun? oder jede andere LösungWie man WP oembed script außerhalb von the_content verwendet

Antwort

10

Wenn das benutzerdefinierte Feld, um die Video-URL wie http://www.youtube.com/watch?v=dQw4w9WgXcQ nur enthält, dann können Sie den oEmbed HTML-Code mit wp_oembed_get erhalten:

$videourl = 'http://www.youtube.com/watch?v=dQw4w9WgXcQ'; 
$htmlcode = wp_oembed_get($videourl); 
echo $htmlcode; 

Wenn Ihr benutzerdefinierten Feld mehr enthält als nur die URL, Sie die gleiche Sache der the_content -function tut könnte die the_content Filter verwenden zu tun:

$content = "<h2>this video is great</h2>\n<p>check it out</p>\n" 
    . "[embed]http://www.youtube.com/watch?v=dQw4w9WgXcQ[/embed]"; 

$htmlcode = apply_filters('the_content', $content); 
echo $htmlcode; 
+0

Danke, dass wirklich funktioniert, aber es funktioniert auf direkte URL nicht, wenn ich get_post_meta Beispiel verwenden $ videourl = 'mit Post-Meta-Code hier'; $ htmlcode = wp_oembed_get ($ videourl); echo $ htmlcode; –

+0

Danke, dass funktioniert, finde ich auf dem zweiten heraus. und wie man die Breite und Höhe von Embed Video ändern –

+0

Alles funktioniert dank "VSTM" für Ihre Zeit sir –

-1

Hier ist eine vollständige Antwort auf Ihre Frage. Es ist auch eine sauberere und schnellere Methode, mit wp_oembed_get, anstatt Shortcode. Ändern Sie natürlich video_url in den Namen Ihres benutzerdefinierten Felds.

Dieser Code prüft, ob das Feld video_url nicht leer ist, dann oEmbindet das Video.

+0

Sie müssen 'video_url' in den Namen Ihres benutzerdefinierten Felds ändern, andernfalls erhalten Sie' Call to undefined function get() '. Ich habe diesen genauen Code auf mehr als 10 Websites aktiv, also weiß ich, dass es funktioniert ... Es ist kein ungeprüfter Vorschlag. –

+0

Die Antwort ist nicht vollständig ohne die Implementierung des benutzerdefinierten Felds. Es ist immer noch nicht sauberer und schneller als das andere. –