it-swarm.com.de

Anpassen von eingebetteten Tweets (oder Ausblenden von Fotos in eingebetteten Tweets)

Ich verlasse mich auf die Funktion WP, um einen Tweet einzubetten. Wenn ich eine Tweet-URL hinzufüge, wie folgt:

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

für den Editor wird es erweitert und zeigt Folgendes:

 Embedded Tweet displayed in WordPress 

Ich muss den Einbettungscode von Twitter nie direkt berühren. Ich möchte den Tweet jedoch so anpassen, dass das Bild nicht angezeigt wird. Laut den Twitter-Dokumenten muss ich Folgendes hinzufügen, um Fotos auszublenden:

 data-cards="hidden"

zu dem von WordPress generierten Blockzitat.

Meine Frage ...

Da mir WordPress den eingebetteten Code nie direkt anzeigt (nicht in der Registerkarte "Visual" oder "Text" des Editors verfügbar), gibt es eine Möglichkeit, den Code "data-cards =" hidden "" für alle angezeigten Tweets automatisch in den Blockquote-Code einzufügen in den inhaltsbereichen der website?

Vielen Dank!

1
Yazmin

Hier ist eine Möglichkeit, mit dem Filter oembed_fetch_url den Abfrageparameter hide_media hinzuzufügen, die auch in der Twitter-Dokumentation Seite erwähnt wird, auf die Sie verlinkt haben:

Legen Sie einen oEmbed-Abfrageparameter von hide_media=true fest oder fügen Sie dem resultierenden data-cards="hidden" -Element ein <blockquote>-Attribut hinzu, um eine erweiterte Inhaltsanzeige zu verhindern.

Hier ist ein Beispiel:

/**
 * 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 );

So sieht die URL des Twitter-Anbieters aus:

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

und danach:

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

Dann gibt es das oembed_result , um vom Provider zurückgegebenes HTML zu filtern. Wir könnten auch den embed_oembed_html Filter verwenden, um das data-cards="hidden"-Attribut dynamisch hinzuzufügen, selbst auf der Basis einzelner Beiträge oder um unsere eigenen benutzerdefinierten Abfrageparameter zu überprüfen. Ich denke jedoch, dass die erste Methode stabiler ist, da es schwieriger ist, das Attribut in eine möglicherweise dynamische HTML-Struktur einzufügen.

2
birgire