web-dev-qa-db-fra.com

Paramètres d'intégration de YouTube?

Selon ceci: https://codex.wordpress.org/Embeds

Vous pouvez simplement coller votre lien YouTube dans votre message et cela devient une vidéo YouTube intégrée. Cela fonctionne pour moi, mais il semble ignorer tous les paramètres par lesquels je passe le lien YouTube. Par exemple, si je colle dans:

https://www.youtube.com/watch?v=XYZ12345&rel=0

Le code HTML généré est:

<iframe width="500" height="281" src="https://www.youtube.com/embed/XYZ12345?feature=oembed" frameborder="0" allowfullscreen=""></iframe>

Comme vous pouvez le constater, le paramètre &rel=0 est absent du code HTML incorporé généré. Y at-il une astuce pour passer des paramètres à l’intégration?

1
Jake Wilson

Il y a toujours un filtre que vous pouvez utiliser pour vous connecter à la sortie, voir embed_oembed_html . Essayez ceci dans un fichier de fonctions d'un plugin personnalisé ou d'un thème enfant, il ajoutera toutes les chaînes de requête à l'attribut iframesrc:

add_filter("embed_oembed_html", function( $html, $url, $attr ) { 
    parse_str(parse_url($url, PHP_URL_QUERY), $url);
    if ( $url ) {
        foreach ( $url as $q=>$v ) {
            preg_match('/src="([^"]+)"/', $html, $src);
            if ( isset( $src[1] ) ) {
                $html = str_replace(
                    $src[1],
                    add_query_arg( array( $q=>$v ), $src[1] ),
                    $html
                );
            }
        }
    }
    return $html;
}, 10, 3);

Assurez-vous qu'il n'y a aucune chaîne de requête que vous ne souhaitez pas ajouter à la variable iframesrc et ignorez-la avec un continue; dans la boucle.

J'espère que cela pourra aider.

1
Samuel Elh