Verwenden Sie den Filter [Einbetten] in Vorlagendateien

9

WordPress bettet automatisch ein YouTube-Video ein, wenn ich Folgendes verwende:

[embed] http://www.youtube.com/watch?v=Xog1T5dUxcw [/embed ]

Das ist großartig, aber es funktioniert nicht, wenn ich es in einer Vorlagendatei verwende. Ich habe ein benutzerdefiniertes Feld, in dem der Administrator eine URL zu einem YouTube-Video einfügen kann. Ich möchte das Video im Einzelbeitrag mit dem folgenden Code erhalten:

<?php
  $custom = get_post_custom($post->ID);
  $url = $custom['_videoLink'][0];
?>
<div class="video">
  [embed]<?php $url; ?>[/embed]
</div>

Wie kann ich die Youtube-URL mit der Standardfunktion WordPress [einbetten] in eine Einbettungs-URL konvertieren?

Sjoerd Boerrigter
quelle

Antworten:

14

Verwenden Sie wp_oembed_get( $url )stattdessen. Stellen Sie sicher, dass Sie echoes in Ihrer Vorlagendatei. Also so etwas:

<?php
// tot necessary to set this but good if $url is coming from a function
$url = 'https://www.youtube.com/watch?v=jofNR_WkoCE';

// echo the function in your template to render the video
echo wp_oembed_get( $url );
?>
D3XT3R
quelle
Einfache und beste Lösung für dieses Problem. +1
Sam
10

Normalerweise müssen Sie do_shortcode in einer Vorlage verwenden, um einen Shortcode außerhalb des Inhalts zu platzieren. Ich hatte jedoch Probleme mit dem eingebetteten Shortcode und konnte ihn nicht so funktionieren lassen. Ich habe diese Lösung gefunden, die funktioniert, aber vielleicht gibt es eine Möglichkeit, dies mit do_shortcode zu tun, und ich habe etwas verpasst.

<?php
$custom = get_post_custom($post->ID);
$url = $custom['_videoLink'][0];
if($url):
    $shortcode = '[embed]'.$url.'[/embed]';
    global $wp_embed;
    echo $wp_embed->run_shortcode($shortcode);
endif;
?>
Milo
quelle
Sie können auch do_shortcode ($ shortcode)
keatch
@keatch - hast du das speziell mit dem Shortcode von WP versucht embed? Wie ich bereits erwähnte, würde dieses spezielle für mich nicht funktionieren, während andere Funktionscodes dies normalerweise tun. Ich habe nicht viel nachgeforscht, warum. Dies war auch nicht mit der neuesten WP-Version.
Milo
1
Ich weiß, dass dies alt ist, aber nur um darauf hinzuweisen, dass ich 2013 immer noch das gleiche Problem habe, da der eingebettete Shortcode nicht in Vorlagendateien funktioniert. Die obige Lösung hat jedoch hervorragend funktioniert.
Eckstein