Ich habe einen benutzerdefinierten Beitragstyp “Video” und wollte Videos wie YouTube, Dailymotion in einem bestimmten Bereich mit dem WP-Standard-Oembed-Skript zeigen. Also verwende ich ein benutzerdefiniertes Feld “Video-URL”, aber das Problem ist das eingebaut in … Arbeiten der Inhalt nicht mit benutzerdefiniertem Feld. also wie kann ich das machen. oder irgendeine andere Lösung
So verwenden Sie das WP-Oembed-Skript außerhalb von the_content
vstm
Wenn das benutzerdefinierte Feld nur die Video-URL enthält, wie z http://www.youtube.com/watch?v=dQw4w9WgXcQ
dann können Sie den oEmbed-HTML-Code mit abrufen wp_oembed_get:
$videourl="http://www.youtube.com/watch?v=dQw4w9WgXcQ";
$htmlcode = wp_oembed_get($videourl);
echo $htmlcode;
Wenn Ihr benutzerdefiniertes Feld mehr als nur die URL enthält, können Sie die verwenden the_content
Filter, um dasselbe zu tun the_content
-Funktion macht:
$content = "<h2>this video is great</h2>\n<p>check it out</p>\n"
. "";
$htmlcode = apply_filters('the_content', $content);
echo $htmlcode;
-
Danke, das funktioniert wirklich, aber es funktioniert bei direkten URLs nicht, wenn ich das get_post_meta-Beispiel verwende. $videourl = ‘using post meta code here’; $htmlcode = wp_oembed_get($videourl); echo $htmlcode;
– Stephan Finn
18. Februar 2013 um 6:00 Uhr
-
Danke, das funktioniert, ich finde es auf der zweiten heraus. und wie man die Breite und Höhe des eingebetteten Videos ändert
– Stephan Finn
18. Februar 2013 um 6:10 Uhr
Hier ist eine vollständige Antwort auf Ihre Frage. Es ist auch eine sauberere und schnellere Methode wp_oembed_get
, anstatt Shortcode. Natürlich wechseln video_url
zum Namen Ihres benutzerdefinierten Felds.
Dieser Code prüft, ob die video_url
Feld nicht leer ist, dann oBettet das Video ein.
<?php if (!((get('video_url', TRUE))=='')) {
echo wp_oembed_get( get('video_url', true) );
}?>
-
Du musst dich ändern
video_url
zum Namen Ihres benutzerdefinierten Felds, andernfalls erhalten SieCall to undefined function get()
. Ich habe genau diesen Code auf über 10 Websites aktiv, also weiß ich, dass er funktioniert … Es ist kein ungetesteter Vorschlag.– Travis Pflanz
15. Oktober 2013 um 4:28 Uhr
-
Die Antwort ist ohne die Implementierung des benutzerdefinierten Felds nicht vollständig. Es ist immer noch nicht sauberer oder schneller als das andere.
– Tom Roggero
15. Oktober 2013 um 18:49 Uhr