it-swarm.com.de

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

Ich versuche, einige Parameter an meine Vimeo-Clips anzuhängen. Ich habe versucht, es mit den folgenden zwei Anweisungen zum Laufen zu bringen:

Leider funktioniert das, was für YouTube funktioniert, nicht für Vimeo, da die zurückgegebene URL keine Zeichenfolge wie ?feature=oembed enthält, mit der ich str_replace bearbeiten kann. Es ist nur die ID des Videos am Ende der URL, die zufällig ist. Ich kann es zum Laufen bringen, wenn ich die genaue ID des Clips eingebe, nach dem str_replace suchen soll.

Hast du eine Idee, wie die Funktion nach Zahlen sucht und die Parameter anfügt? Ein Beispielclip wäre

http://vimeo.com/14956293

und das oEmbed sollte sein

//player.vimeo.com/video/14956293?color=FFFFFF&title=0&byline=0. 

Wie Sie hier sehen können, gibt es einen weiteren Unterschied zu YouTube. Die Argumente beginnen mit? und verbindet die Argumente mit &. Während YouTube mit & beginnt und die Argumente auch mit & verbindet.

2
jakob

Sie sollten einen Filter für den OEM-Anbieter hinzufügen Zollparameter zulassen:

add_filter( 'oembed_fetch_url', 'my_oembed_fetch_url', 10, 3 );

function my_oembed_fetch_url( $provider, $url, $args ) {
    // You can find the list of defaults providers in WP_oEmbed::__construct()
    if ( strpos( $provider, 'vimeo.com' ) !== false) {
        // Check the full list of args here: https://developer.vimeo.com/apis/oembed
        if ( isset( $args['autoplay'] ) ) {
            $provider = add_query_arg( 'autoplay', absint( $args['autoplay'] ), $provider );
        }
        if ( isset( $args['color'] ) && preg_match( '/^[a-f0-9]{6}$/i', $args['color'] ) ) {
            $provider = add_query_arg( 'color', $args['color'], $provider );
        }
        if ( isset( $args['portrait'] ) ) {
            $provider = add_query_arg( 'portrait', absint( $args['portrait'] ), $provider );
        }
        if ( isset( $args['title'] ) ) {
            $provider = add_query_arg( 'title', absint( $args['title'] ), $provider );
        }
        if ( isset( $args['byline'] ) ) {
            $provider = add_query_arg( 'byline', absint( $args['byline'] ), $provider );
        }
    }

    return $provider;
}

dann in deiner Vorlage:

<?php wp_oembed_get('http://vimeo.com/44633289', array('color' => '7AB800')); ?>

oder über einen Shortcode im Inhalt des Beitrags:

[vimeo 44633289 color=7AB800]

und du kannst das gleiche für youtube und alle anderen oembed anbieter tun (wenn dein my_oembed_fetch_url es erlaubt)

1
mems