Altere o Padrão de Colocar Link na Imagem do Post

Adicionando campos extras ao profile

Ao adicionar uma imagem num post, o WordPress automaticamente adiciona um link na imagem. Em muitos casos esses links podem atrapalhar, já que ao clicar na imagem o visitante é levado para uma página fora do artigo que estava lendo. Muitos destes visitantes acabam por fazer a taxa de rejeição do site aumentar, pois muitos dos que clicam na imagem não retornam para o site. Neste artigo você vai aprender como “acabar” com esse padrão de colocar links automaticamente em todas as imagens inseridas.

Porque Alterar Esse Padrão

O problema é que podemos esquecer de fazer isso. Portanto, é importante alterar o funcionamento padrão do WordPress, para que ele não coloque esses links automaticamente nas imagens. Há outros casos que é necessário mandar o visitante para a página do Attachment em vez de mandar diretamente para o endereço da imagem ou então mandar para uma url customizada.

Para isso, basta inserir uma linha de código no arquivo functions.php do seu tema, conforme os exemplos abaixo.

Removendo o Padrão

Para remover o padrão de colocar links automaticamente nas imagens dos artigos, adicione o seguinte código no arquivo functions.php do seu tema:

update_option('image_default_link_type','none');

Links do Attachment Page como padrão

Você também pode colocar o link do Attachment Page como padrão. Desta maneira, ao clicar na imagem o visitante será levado a uma página do seu site com a imagem, em vez de mandar diretamente para o arquivo da imagem. Para isso utilize o código:

update_option('image_default_link_type','post');
9 Comentários para “Altere o Padrão de Colocar Link na Imagem do Post
  1. Meu problema é parecido com esse, queria impedir que o wordpress criasse uma página da imagem, não sei se esse é um erro do template que eu fiz (tô aprendendo na verdade kk) mas o wordpress está criando um post com o nome da imagem. Queria também que o wordpress colocasse o width e height das imagens em webp, por padrão nem o novo editor nem o antigo tá colocando, isso acaba dando erro na versão AMP do site que eu coloquei no template, ainda não consegui achar uma solução que eu puxasse de forma dinâmica a altura e largura da imagem no wordpress.

    1. Autor do site

      Olá Mathias,

      Criar uma “página de mídia” é o funcionamento padrão do WordPress, não há nenhum problema. O plugin SEO By Yoast tem a opção de desativar essa página. Basta ir nas configurações do plugin, clicar em “Aparência de pesquisa” > “Mídia”. Marque a opção “Redirecionar URLs de anexos para o anexo em si?” como “sim”. A questão da imagem webp pode ser apenas alguma configuração do CSS. Eu teria que ver o site para te responder melhor essa questão.

      Espero ter ajudado

  2. Olá. Só pra informar: Consegui a solução para o meu comentário anterior, onde eu pedi ajuda para alterar o padrão do Rel Link. Este código funcionou perfeitamente:

    add_filter('the_content', 'my_addlightboxrel');
    function my_addlightboxrel($content) {
           global $post;
           $pattern ="/<a>/i";
           $replacement = "<a rel=\"shadowbox[{$post- rel="nofollow">ID}]\">";
           $content = preg_replace($pattern, $replacement, $content);
           return $content;
    }

    Mesmo assim obrigado. Parabéns pelo seu blog. Ele ajuda muitas pessoas. Grande abraço.

  3. Olá, boa tarde. No arquivo functions.php é possível adicionar um “Rel do Link” padrão? Ou seja, toda imagem adiciona no post terá o padrão rel=”shadowbox[vocation]”, por exemplo. Isso é para a imagem ser mostrada na própria página da postagem através de um efeito lightbox. Manualmente funciona, mas seria bom se o WordPress pudesse adicionar automaticamente. Tentei colocar no arquivo single.php, mas não da efeito. Muito obrigado.

  4. Olá, gostaria de saber se consigo mudar o nome da classe padrão que é criado no link da imagem no WordPress.

    1. Autor do site

      Olá Silvan,

      Para adicionar uma classe no link da imagem, adicione o seguinte código no arquivo functions.php:

      add_filter('image_send_to_editor','custom_class_link_image');
      
      // Adiciona uma classe personalizada nos links das imagens (by wptotal.com.br)
      function custom_class_link_image($html) {
      
      $custom_class = "my-custom-class";
      $html = preg_replace('/\<a href\=\"(.*)\"(.?)\ rel="nofollow">(.*)\<\/a\>/i','<a href="$1" $2 class="'.$custom_class.'" rel="nofollow">$3</a>',$html);
      return $html;
      }

      Fiz esse código rapidinho, pelos meus testes, ele atende perfeitamente a sua necessidade de trocar a classe do link das imagens.

      Abraços!

      *preg_replace corrigido

  5. Estou a dias procurando como fazer isso… o problema é que as pessoas sempre esquecem de remover o link das imagens, agora esse problema vai acabar aqui.

    ah… parabéns pelo site.

  6. Em qual arquivo se faz esta mudança?

    1. Autor do site

      Olá, Fernando,

      Esse código deve ser inserido no arquivo functions.php do seu tema!

      (Adicionei esta informação no artigo acima, pois, outras pessoas podem ter a mesma dúvida).

      Qualquer outra dúvida estou a disposição para ajudá-lo.

      Abraços.

*Condições no site