自定义嵌入的推文(或如何在嵌入的推文中隐藏照片)

时间:2016-04-28 作者:Yazmin

我依靠WP功能嵌入推特。当我添加推特URL时,如下所示:

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

对于编辑器,它将展开并显示以下内容:

Embedded tweet displayed in WordPress

我从来不用直接接触推特上的嵌入代码。但是,我想定制推特,使其不显示图像。根据Twitter docs, 为了隐藏照片,我需要添加:

 data-cards="hidden"
到WordPress生成的blockquote。

My question...

由于WordPress从未直接向我显示嵌入代码(在编辑器的视觉或文本选项卡中不可行),是否有办法自动将“数据卡=“隐藏”代码插入网站内容区域中显示的所有推文的blockquote代码?

谢谢

1 个回复
最合适的回答,由SO网友:birgire 整理而成

这里有一种使用oembed_fetch_url 筛选器以添加hide_media 查询参数,也在Twitter doc 链接到的页面:

设置的oEmbed查询参数hide_media=true 或添加data-cards="hidden" 结果的属性<blockquote> 元素以防止扩展内容显示。

下面是一个示例:

/**
 * 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 );
以下是之前Twitter提供商url的外观:

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

之后:

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

然后是oembed_result 筛选提供程序返回的HTML。我们也可以使用embed_oembed_html 筛选器以动态添加data-cards="hidden" 属性,即使是在每篇文章的基础上,也可以检查我们自己的自定义查询参数。但我认为第一种方法更稳定,因为很难将属性注入可能是动态的HTML结构中。

相关推荐

我应该让我的Twitter插件用户创建他们自己的Twitter应用程序和API密钥来使用我的插件吗?

我正在创建我的第一个WordPress插件。它是一个Twitter插件,使用Twitter API 1.1和OAuth 2.0生成承载令牌,然后使用该令牌从Twitter获取推文。该插件即将推出。现在,插件的用户需要转到以下位置:https://developer.twitter.com/en/apps/create并创建一个新的应用程序,填写所有详细信息,以便他们可以生成自己的消费者API密钥&;与我的插件一起使用的秘密。一旦他们这样做,我的插件将为他们获取一个承载令牌。我的插件只需要“读取”权限