Snippets e Shortcodes

Criando um shortcode para anúncios no WordPress

Anúncios Google

Como todo principiante, cometi “atrocidades” em meus primeiros projetos online, e até outros mais recentes. Um dos que me recordo bem foi a infeliz ideia de inserir códigos de anúncio AdSense direto no texto dos artigos. Tipo só escolher o lugar dentro do texto, meter lá o código, e fim. Um método simples, em que eu não precisava nem mexer nos arquivos do template, e ainda podia colocar anúncios onde bem entendesse.

Claro que foi uma péssima ideia, como só fui constatar muito tempo – e muitos, muitos posts – depois. Num certo momento, você se dá conta de que aqueles blocos de anúncio não estão funcionando, e precisa trocá-los, removê-los ou trocar suas posições. Aí começa a dureza… 57143587 posts para editar, um a um, ou dar um jeito de editar o banco de dados por query, o que não é acessível pra qualquer tipo de usuário, ainda mais  um novato que já tinha cometido aquela barbaridade  :sick:

Mas claro que tinha um jeito muito mais fácil de colocar blocos de anúncio (e na prática, qualquer outra coisa) dentro dos posts, podendo mudar depois sem ter que editar os posts.

Foi o que descobri através de um artigo do Escola WordPress, que por sua vez descobriu através do WPTuts. Trata-se de um shortcode, recurso nativo do WordPress que permite criar pequenos trechos de código que serão carregados dentro de qualquer lugar que use um atalho entre colchetes [], como aqueles códigos BBCode, tão comuns em algumas redes sociais e fóruns.

Vamos usar meu próprio exemplo: eu queria um shortcode que inserisse um bloco de anúncios do AdSense no final do post, então em meu arquivo functions.php, antes da última linha e do ?>, usei:

function showadsbase() {
    return '
//código do bloco adsense aqui
';
} 

add_shortcode('rodapead', 'showadsbase');

Com isso, seu functions já vai fornecer o código que será puxado na página: é tudo o que está entre as aspas ‘ depois de return. Para chamar este código em suas páginas, você só precisa usar o shortcode assim:

[rodapead]

Simples, não?

Você pode mudar o código e criar outros shortcodes, chamando anúncios em outras posições, por exemplo, um anúncio para o início dos posts:

function showadstopo() {
    return '
	//aqui o código de seu anúncio
';
} 

add_shortcode('adsense', 'showadstopo');

Repare que mudou o nome da função (de showadsbase para showadstopo) e o shortcode de [rodapead] para [adsense]. Isso dá uma ideia de como modificá-la para conseguir shortcodes para outras posições, que você define como ficam.

Um leitor mais atento pode perguntar: “mas meus posts ficarão cheios de shortcodes. E se eu resolver não exibir mais os anúncios depois?”

Para isso há vários métodos:

    • executar um comando (query) Sql no seu banco de dados (usuários avançados). O iMasters publicou um modelo que você pode tentar:
      UPDATE wp_post SET post_content = replace(post_content, '[tweet]', '' ) ;
      

      Só troque o “tweet” pelo shortcode que você quer remover. No meu exemplo, se eu quisesse me livrar de todos os shortcodes “rodapead”, esse seria o termo colocado no lugar do “tweet”.

 

 

  • o mais simples e pra mim, seguro: deixe um espaço em branco no lugar. Por exemplo, digamos que você se cansou do anúncio no rodapé do post, então para não ter que dar eliminar todos os shortcodes de dentro dos posts, altere a função que inseriu na functions, deixando assim:
    function showadsbase() {
        return ' ';
    } 
    
    add_shortcode('rodapead', 'showadsbase');
    

    Assim, você mantém os shortcodes lá, sem exibir nada, e caso volte a
    precisar deles, o lugar ainda estará reservado: é só voltar ao functions e colocar o código do que quer exibir ali no return. É melhor do que eliminar tudo e ter que refazer depois, pois não imagino um query que recoloque os shortcodes…

É isso, se tiverem dúvidas ou sugestões, comentem.

Author

Fundador do Tutoriart em 2010, é ex-instrutor de Photoshop, design web e gráfico. Em quase uma década de redação online, tem cerca de 1500 artigos publicados. Gerencia também o Memória BIT.

Write A Comment

Pin