it-swarm.com.de

Gibt es eine Möglichkeit, einen benutzerdefinierten Parameter für die YouTube-Einbettung zu verwenden, ohne einen Iframe zu verwenden?

Ich möchte nicht die Titel von Videos anzeigen, die ich auf meiner WordPress-Site eingebettet habe. Ich benutze dazu den Einbettungslink, füge den Iframe in den WordPress-Beitrag ein und füge den benutzerdefinierten Parameter "showinfo = 0" am Ende der URL hinzu. Dies hat gut funktioniert, bis ich beschlossen habe, das Design meiner Website zu ändern. Ich musste einige benutzerdefinierte CSS-Dateien verwenden, um alle Videos (fast 200), mit denen ich das gemacht habe, zu ändern, um sie an das neue Design anzupassen. Wenn ich nur gewusst hätte, wie man den Link in WordPress ablegt (wie die meisten Leute), hätte ich keinen Iframe verwenden müssen, und WordPress hätte die Größe des Videos basierend auf den im Medienbereich eingegebenen Einstellungen angepasst .

Ich hoffe, es gibt einen besseren Weg, um ein Youtube-Video einzubetten, als den, den ich bisher gemacht habe video to show up. Hat jemand eine Idee wie (oder ob es überhaupt möglich ist) das zu tun?

Ich poste jeden Tag ein Video, daher würde es mir sehr helfen, wenn es eine Möglichkeit gäbe, dies zu tun. Vielen Dank.

`

<?php
load_theme_textdomain('standardtheme', get_template_directory() . '/lang');
$locale = get_locale();
$locale_file = get_template_directory() . '/languages/$locale.php';
if(is_readable($locale_file)):
    require_once($locale_file);
endif;
add_theme_support('post-thumbnails');
require_once('admin/functions.php');
require_once('lib/standardtheme.php');
require_once('lib/pro-photo/pro-photo.php');

function Oembed_youtube_no_title($html,$url,$args){
    $url_string = parse_url($url, PHP_URL_QUERY);
    parse_str($url_string, $id);
    if (isset($id['v'])) {
        return '<iframe width="'.$args['width'].'" height="'.$args['height'].'" src="http://www.youtube.com/embed/'.$id['v'].'?rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe>';
    }
    return $html;
}
add_filter('oembed_result','Oembed_youtube_no_title',10,3);

?>
1
Rick Smith

Es ist kein Plugin erforderlich. Sie können einfach den oembed_result-Filter-Hook der Oembed-Klasse verwenden

so was:

function Oembed_youtube_no_title($html,$url,$args){
    $url_string = parse_url($url, PHP_URL_QUERY);
    parse_str($url_string, $id);
    if (isset($id['v'])) {
        return '<iframe width="'.$args['width'].'" height="'.$args['height'].'" src="http://www.youtube.com/embed/'.$id['v'].'?rel=0&showinfo=0" frameborder="0" allowfullscreen></iframe>';
    }
    return $html;
}
add_filter('oembed_result','Oembed_youtube_no_title',10,3);

fügen Sie diesen Code einfach in die Datei functions.php Ihres Themas ein, richten Sie Breite und Höhe im Media-Bereich ein und fügen Sie die Video-URL des YouTube einfach in den Post ein.

5
Bainternet

Tolle Lösung Bainternet,

Als schnelle Ergänzung empfiehlt es sich, zunächst zu überprüfen, ob es sich bei der Einbettung um eine YouTube-Einbettung handelt, bevor Sie diese Werte ersetzen, um andere Einbettungstypen nicht zu beschädigen. Es ist auch praktisch, das WordPress-Muster zum Parsen von Argumenten mit Standardeinstellungen zu verwenden. Basierend auf diesen beiden Zusätzen ist hier eine geänderte Funktion (wobei "Namespace" Ihr Namespace ist:

/**
 * Add Custom Parameters to YouTube Embeds
 */
function namespace_oembed_youtube_no_title( $html, $url, $args ) {

    // Only run this for YouTube embeds
    if ( !strstr($url, 'youtube.com') )
        return $html;

    // Get embed URL
    $url_string = parse_url($url, PHP_URL_QUERY);
    parse_str($url_string, $id);

    // Set default arguments
    $defaults = array(
        'width' => 480,
        'height' => 385,
        'showinfo' => true,
        'rel' => true
    );

    // Merge args with defaults
    $args = wp_parse_args( $args, $defaults );

    // Define variables
    extract( $args, EXTR_SKIP );

    // Add custom parameter values to IFRAME
    if ( isset($id['v']) ) {
        return '<iframe width="' . intval($width) . '" height="' . intval($height) . '" src="http://www.youtube.com/embed/' . $id['v'] . '?rel=' . intval($rel) . '&showinfo=' . intval($showinfo) . '" frameborder="0" allowfullscreen></iframe>';
    }

    return $html;
}
add_filter('oembed_result', 'namespace_oembed_youtube_no_title', 10, 3);

Und jetzt zum wp_oembed_get()-Aufruf:

// oEmbed Video
$video = wp_oembed_get('http://www.youtube.com/watch?v=mx4xeO3Xq7g', array(
    'width' => 632,
    'height' => 474,
    'showinfo' => false,
    'rel' => false
) );

Nochmals vielen Dank, dass Sie diese Lösung hinzugefügt haben. Der ursprüngliche Beitrag hat ein Problem für mich gelöst und war wirklich hilfreich.

2
Kevin Leary

Greifen Sie einfach auf die URL zu, fügen Sie Ihre Abfragezeichenfolge hinzu und lassen Sie den integrierten oEmbed-Support von WordPress damit umgehen.

Das heißt: Ziehen Sie die URL aus dem eingebetteten iframe-Code heraus und hängen Sie &showinfo=0 an das Ende an. Fügen Sie das Ergebnis in den Inhalt des Beitrags in einer eigenen Zeile ein und voila : WordPress bettet das Video ordnungsgemäß ein, ohne dass ein Titel angezeigt wird.

Hier ist ein funktionierendes Beispiel: http://www.youtube.com/v/GrfGGzRNC4U?version=3&hl=de&showinfo=0

Ich habe diese URL aus dem eingebetteten Code gezogen, nicht der verkürzten URL.

0
Chip Bennett