web-dev-qa-db-fra.com

Comment ajouter un nouveau gestionnaire d'intégration non pris en charge par oembed?

Je cherche à intégrer des vidéos de sites Web n'offrant pas de support Oembed. J'ai écrit du code mais ça ne marche pas.

exemple de lien:

https://openload.co/f/onU1gT5mkJ8/A_date_with_Lazar_Angelov.mp4

exemple embarqué:

<iframe src="https://openload.co/embed/onU1gT5mkJ8/A_date_with_Lazar_Angelov.mp4" scrolling="no" frameborder="0" width="700" height="430" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>

mon code:

  add_action( 'init', function()
    {
        wp_embed_register_handler( 
            'openload', 
            '#https://www\.openload\.co/f/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)?#i', 
            'wp_embed_handler_openload' 
        );

    } );

    function wp_embed_handler_openload( $matches, $attr, $url, $rawattr )
    {
        $embed = sprintf(
            '<iframe class="openload-video" src="https://openload.co/embed/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)" scrolling="no" frameborder="0" width="700" height="430" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true">></iframe>',
            esc_attr( $matches[1] ) 
         );

        return apply_filters( 'embed_openload', $embed, $matches, $attr, $url, $rawattr );
    }

J'ai vraiment collé à cela. J'apprécierais beaucoup les conseils ou les liens vers des informations susceptibles de vous aider. Merci!

1
Merol93

Je suis presque sûr que vous essayez d'utiliser le motif regex dans votre appel sprintf, alors que vous devriez utiliser ... eh bien, un format sprintf :

$embed = sprintf(
    '<iframe class="openload-video" src="https://openload.co/embed/%s" scrolling="no" frameborder="0" width="700" height="430" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true">></iframe>',
    esc_attr(
        $matches[1]
    ) 
);

Notez que vous n'utilisez pas www dans votre URL d'intégration:

https://openload.co/f/onU1gT5mkJ8/A_date_with_Lazar_Angelov.mp4

comme prévu dans votre modèle:

#https://www\.openload\.co/f/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)?#i
2
TheDeadMedic