{"id":232223,"date":"2023-01-10T12:28:00","date_gmt":"2023-01-10T09:28:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232223"},"modified":"2022-11-10T08:09:59","modified_gmt":"2022-11-10T05:09:59","slug":"torne-os-tweets-incorporados-no-wordpress-responsivos","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/torne-os-tweets-incorporados-no-wordpress-responsivos\/","title":{"rendered":"Torne os tweets incorporados no WordPress responsivos"},"content":{"rendered":"\n<p>O WordPress permite que voc\u00ea incorpore tweets colando o URL do tweet em suas postagens. Voc\u00ea recebe um belo cart\u00e3o com o tweet e todos os detalhes relevantes. Infelizmente, este cart\u00e3o n\u00e3o funcionar\u00e1 em sites responsivos devido a uma largura de corre\u00e7\u00e3o aplicada pelo Twitter. Neste post veremos como remov\u00ea-lo e tamb\u00e9m tornar nosso tweet incorporado adequadamente responsivo.<\/p>\n<h2>Vis\u00e3o geral<\/h2>\n<p>Antes que o tweet seja processado para mostrar o cart\u00e3o com o autor, avatar do Twitter, bot\u00e3o seguir e outros metadados, ele \u00e9 exibido como um elemento HTML simples de cita\u00e7\u00e3o em bloco com o atributo de largura fixa definido, que por padr\u00e3o \u00e9 500px. Claro, essa largura fixa quebrar\u00e1 nosso layout responsivo, ent\u00e3o basicamente precisamos remover esse atributo para que o cart\u00e3o de tweet processado apare\u00e7a sem largura fixa.<\/p>\n<p>Ap\u00f3s remov\u00ea-lo, aplicaremos um estilo CSS simples para que funcione de forma responsiva com o restante das dimens\u00f5es do site.<\/p>\n<h2>WordPress oEmbed e filtros<\/h2>\n<p>Nosso tweet \u00e9 colocado usando oEmbed, uma tecnologia usada pelo WordPress que nos permite inserir conte\u00fado de outros sites apenas colocando o link em nosso editor de posts. O WordPress ir\u00e1 consultar automaticamente o site do provedor (que pode n\u00e3o ser apenas Twitter, mas YouTube, Vimeo e outros) e obter\u00e1 o HTML para inserir em nosso site.<\/p>\n<p>O HTML retornado pelo site do provedor pode ser processado usando um dos filtros que o WordPress fornece para fazer isso e alterar a marca\u00e7\u00e3o. Vamos usar o filtro <strong>oembed_result<\/strong>, que \u00e9 executado ap\u00f3s obter o HTML do provedor oEmbed e antes de ser salvo no cache. A vantagem disso \u00e9 que o filtro n\u00e3o precisar\u00e1 ser executado toda vez que o site for visitado, resultando em uma resposta mais r\u00e1pida e, claro, tempos de carregamento mais r\u00e1pidos.<\/p>\n<h2>Filtrando o tweet<\/h2>\n<p>Este c\u00f3digo deve ser colocado no arquivo functions.php do seu tema<\/p>\n<pre><code>&lt;?php\n\/** Remove fixed width from embedded tweets. First step to make them responsive. \n * @param string $html HTML that should be used to embed \n * @param string $url The URL to the content that should be attempted to be embedded. \n * @param array $args Optional arguments. \n * @author Elio Rivero \n * @link https:\/\/startfunction.com \n *\/ \nfunction startfunction_oembed_result($html, $url, $args)\n{\n    \/\/ Check if it's a tweet looking for 'twitter' in the url pasted in the post\n    if (stripos($url, 'twitter')) {\n        \/\/ Before the tweet is processed, it's displayed as a blockquote \/\/ with its width attribute set, so let's remove it. \n        return preg_replace('#width=\"(.*)\"#', '', $html);\n    }\n    \/\/ Otherwise return the HTML as is. \n    return $html;\n} \n\/\/ Filter the result of the oEmbed extraction. \nadd_filter('oembed_result', 'startfunction_oembed_result', 10, 3);\n<\/code><\/pre>\n<p>O <code>$url<\/code>par\u00e2metro \u00e9 o link para o tweet que estamos incorporando. Estamos verificando se \u00e9 do Twitter, caso contr\u00e1rio n\u00e3o queremos executar isso. Estamos usando str_replace para procurar a string <strong><code>width=\"500\"<\/code><\/strong>substituindo-a por uma string vazia.<\/p>\n<h2>Tornando o cart\u00e3o de tweet responsivo<\/h2>\n<p>Ainda precisamos adicionar algum CSS para torn\u00e1-lo responsivo, ent\u00e3o insira o seguinte na folha de estilo do seu tema (ou plugin)<\/p>\n<pre><code>#main .twitter-tweet-rendered, #main .twt-border {\n    max-width: 100% !important; \n}<\/code><\/pre>\n<p>e apenas com isso seus tweets incorporados ser\u00e3o responsivos.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/startfunction.com\" class=\"external external_icon\">startfunction.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O WordPress permite que voc\u00ea incorpore tweets colando o URL do tweet em suas postagens. Voc\u00ea recebe um belo cart\u00e3o com o tweet e todos os detalhes relevantes. Infelizmente, este cart\u00e3o<\/p>\n","protected":false},"author":1,"featured_media":236911,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,837,816,846,867],"tags":[1170],"class_list":["post-232223","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-guia-para-iniciantes","category-plug-ins","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/232223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=232223"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/232223\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/236911"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=232223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=232223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=232223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}