web-dev-qa-db-fra.com

Personnaliser les tweets incorporés (ou, Comment masquer les photos dans les tweets incorporés)

Je compte sur la fonctionnalité WP pour intégrer un Tweet. Quand j'ajoute une URL de Tweet, comme ceci:

https://Twitter.com/SamFlowers/status/724417082247528448

pour l'éditeur, il se développe et affiche les éléments suivants:

 Embedded Tweet displayed in WordPress 

Je n'ai jamais à toucher directement le code d'intégration de Twitter. Cependant, je souhaiterais personnaliser le Tweet afin qu’il n’affiche pas l’image. Selon les docs Twitter , afin de masquer des photos, je dois ajouter:

 data-cards="hidden"

à la blockquote générée par WordPress.

Ma question ...

Puisque WordPress ne me montre jamais directement le code intégré (non viable dans les onglets Visual ou Texte de l'éditeur), existe-t-il un moyen d'insérer automatiquement le code "data-cards =" hidden "'dans le code blockquote pour tous les tweets affichés? dans les zones de contenu du site Web?

Merci!

1
Yazmin

Voici un moyen d’utiliser le filtre oembed_fetch_url pour ajouter le paramètre de requête hide_media, qui est également mentionné dans la page Twitter doc page à laquelle vous avez accédé:

Définissez un paramètre de requête oEmbed de hide_media=true ou ajoutez un attribut data-cards="hidden" à l'élément <blockquote> résultant pour empêcher l'affichage de contenu développé.

Voici un exemple:

/**
 * Hide media for all Twitter oEmbeds, using the hide_media=1 query argument
 */
add_filter( 'oembed_fetch_url', function( $provider, $url, $args )
{
    // Target publish.Twitter.com provider
    if( 'publish.Twitter.com' === parse_url( $provider, PHP_URL_Host ) )
        $provider = add_query_arg( 'hide_media', 1, $provider );

    return $provider;
}, 99, 3 );

Voici à quoi ressemble l'URL du fournisseur Twitter:

https://publish.Twitter.com/oembed?maxwidth=840&maxheight=1000&url=https%3A%2F%2Ftwitter.com%2FSamFlowers%2Fstatus%2F72441708224757528448

et après:

https://publish.Twitter.com/oembed?maxwidth=840&maxheight=1000&url=https%3A%2F%2F%2F%2Ftwitter.com%2FSamFlowers%2Fstatus%2F724417082247528448&hide_media=1

Puis il y a le oembed_result pour filtrer le code HTML renvoyé par le fournisseur. Nous pourrions également utiliser le filtre embed_oembed_html pour ajouter dynamiquement l’attribut data-cards="hidden", même poste par poste, ou pour vérifier nos propres paramètres de requête personnalisés. Mais je pense que la première méthode est plus stable, car il est plus difficile d’injecter l’attribut dans une structure HTML éventuellement dynamique.

2
birgire