web-dev-qa-db-fra.com

Comment puis-je forcer oEmbed à afficher des dimensions fixes en hauteur et en largeur?

J'essaie d'explorer de nouvelles façons d'incorporer des vidéos sur mon site, car certains de mes contributeurs rencontrent des difficultés pour afficher les versions Flash lors de l'utilisation de la fonction d'aperçu.

Idéalement, il serait plus simple d'utiliser oEmbed via le shortcode [embed], mais je rencontre un problème pour lequel je ne semble pas pouvoir trouver de solution.

Je sais que vous pouvez spécifier les dimensions maximales de l'incorporation via l'onglet Média, mais ce n'est pas ce que je veux faire. Chaque photo ou vidéo affichée sur notre site mesure 560px x 340px à des fins de continuité. Ce sont les dimensions que je veux imposer aux oEmbeds, mais je ne trouve pas le moyen de le faire!

Chercher de l'aide ici car Google n'a servi à rien!

1
Mark Spivey

Lorsque vous parlez de l’utilisation de codes oEmbed, je suppose que vous faites référence à la capacité de WordPress à transférer une URL vers un média (tel que celui de YouTube) et à intégrer automatiquement cela dans un post.

Si tel est le cas, vous pouvez tirer parti du raccordement embed_oembed_html fourni par WordPress.

Voici comment vous pouvez le faire avec une fonction personnalisée:

function example_custom_oembed_dimensions($html, $url, $args) {

    // Set the height of the video
    $height_pattern = "/height=\"[0-9]*\"/";
    $html = preg_replace($height_pattern, "height='560'", $html);

    // Set the width of the video
    $width_pattern = "/width=\"[0-9]*\"/";
    $html = preg_replace($width_pattern, "width='340'", $html);

    // Now return the updated markup
    return $html;

} // end example_custom_oembed_dimensions
add_filter('embed_oembed_html', 'example_custom_oembed_dimensions', 10, 3);

Vous indiquez que vous utilisez une largeur et une hauteur uniformes pour les supports de votre site, mais que la page Paramètres de support ne vous intéresse pas.

Par souci de cohérence, vous pouvez forcer par programme les valeurs dans les paramètres de support et les utiliser dans des filtres tout au long de votre travail.

Par exemple, nous devons d’abord définir la taille du support:

function example_force_media_size() {

    if(get_option('embed_size_w') != 560) {
        update_option('embed_size_w', 560);
    } // end if

    if(get_option('embed_size_h') != 340) {
        update_option('embed_size_h', 340);
    } // end if

} // end example_force_media_size
add_action('init', 'example_force_media_size');

Désormais, chaque fois que quelqu'un tente d'écraser ces paramètres dans la page Paramètres de support, cette fonction se déclenche et force les valeurs.

Ensuite, vous pouvez récupérer ces valeurs puis les utiliser lors de l’incorporation de votre média:

function example_custom_oembed_dimensions($html, $url, $args) {

    // Find the height value, replace it with Media Settings value
    $height_pattern = "/height=\"[0-9]*\"/";
    $height = get_option('embed_size_h');
    $html = preg_replace($height_pattern, "height='$height'", $html);

    // Find the width value, replace it with Media Settings value
    $width_pattern = "/height=\"[0-9]*\"/";
    $width = get_option('embed_size_w');
    $html = preg_replace($width_pattern, "width='$width'", $html);

    // Now return the updated markup
    return $html;

} // end example_custom_oembed_dimensions
add_filter('embed_oembed_html', 'example_custom_oembed_dimensions', 10, 3);

La première fonction est peut-être tout ce dont vous avez besoin, mais imposer les valeurs des paramètres de support peut également faciliter la rédaction de filtres personnalisés pour d’autres types de supports.

2
Tom

Si vous essayez d’incorporer des vidéos Flash, vous devriez essayer le plugin kimili falsh embed .. qui facilite l’incorporation de Flash et facilite le contrôle de la taille, etc.

0
Sagive SEO