#365Posts – WordPress: Como inserir anúncios no meio do post automaticamente

Provavelmente este será o último post sobre assuntos técnicos que você vai ver por aqui durante um tempo. Assim, se o assunto não agrada, por favor desculpe, e volte amanhã que deve ter alguma opinião bem mal humorada minha pra você se divertir. E se você aprecia este tipo de post, e gostaria de ler mais posts como este, deixe-me saber qual a sua demanda, e se eu souber como ajudar, talvez eu escreva algo para você.

Durante algum tempo eu inseri anúncios no meio dos meus posts da maneira mais básica, essencial possível: mudava do modo visual para o modo texto, colava o código do anúncio, salvava e torcia para dar certo. No geral funcionava, mas à medida que a quantidade de posts vai aumentando no blog fica impossível de manter as coisas desse jeito (tanto os anúncios podem expirar quanto os posts podem precisar de atualização ou modificação).

Então um belo dia eu aprendi a usar os shortcodes do WordPress, e com isso eu conseguia inserir o anúncio onde queria (o que é uma vantagem do método — se alguém quiser explicação sobre shortcodes posso escrever outro post, já que o plugin que eu usava para exibir códigos no Lucrando na Rede acabou com o post original sobre o assunto).

Mas eis que a Internet é mesmo coisa linda, e acabei encontrando por aí o código que fazia quase o que eu queria, e com um ajuste aqui e outro ali consegui chegar ao resultado que eu queria, com o nível de automação necessário para me satisfazer (ou seja: esquecer que existe um código para inserir os anúncios).

Neste momento, no meio deste post deve ter um anúncio do Adsense, flutuando do lado direito da página. É a demonstração do código que vou expor a seguir. Se não tiver anúncio, talvez eu tenha desistido dessa abordagem, por alguma razão.

A primeira coisa a fazer é criar um código CSS para o anúncio, contendo pelo menos as suas dimensões e o seu posicionamento. No meu caso chamei a classe CSS de postit e inseri o código dela na página usando o editor de CSS personalizado do Jetpack.

.postit { 
    width: 250px;
    height: 250px; 
    margin: 5px;
    float: right;
}

Em seguida deve-se adicionar o código abaixo ao functions.php do tema:

function janio_autoAd($content) {
    $adCode = '<div class="postit"> CÓDIGO DO ANÚNCIO COPIADO LITERALMENTE </div>';

    if (strpos($content, $adCode)) return $content;

    // só insere anúncios em posts maiores que 1000 caracteres
    $enable_length = 1000;
    // Insere depois do primeiro </p> após 40% do texto
    $after_character = strlen($content) * .4;

    if (is_single() && strlen($content) > $enable_length) {
        $before_content = substr($content, 0, $after_character);
        $after_content = substr($content, $after_character);
        $after_content = explode('</p>', $after_content);
        $text = $adCode;
        array_splice($after_content, 1, 0, $text);
        $after_content = implode('</p>', $after_content);
        return $before_content . $after_content;
    }
    else return $content;
}

add_filter('the_content', 'janio_autoAd');

Pronto, está feita a mágica.

Observe o seguinte:

  1. Na segunda linha do script estamos inicializando uma variável que contém o código do anúncio, que vai ficar envolto por um <div class="postit">...</div> (a classe deve ser a mesma do CSS que criamos antes).
  2. Na linha 7 há uma variável que define o tamanho mínimo em caracteres que um post deve ter para receber os anúncios automáticos (arbitrei em 1000 caracteres, mas outros valores podem funcionar melhor para você).
  3. Na linha 9 define-se a posição a partir da qual o anúncio será inserido. Eu defini em 40% após experimentar com diversos valores em diversos posts. Talvez para você este valor não seja assim tão bom para você. Experimente até ficar contente.
  4. Não me responsabilizo pelo que estas instruções possam causar ao seu blog. Nem precisaria dizer isso, mas vai que… Esteja consciente do que vier a fazer para não chorar depois.

Newsletter

Gostou deste conteúdo? Informe seu email e receba gratuitamente todos os novos posts na sua caixa de entrada (será necessário confirmar a inscrição em seguida, verifique sua caixa postal).

4 comentários
  • Luiz Paulo Valença Responder

    Acho que faltou apenas informar que para inserir precisa ser dessa forma , fora isso esse post salvou minha vida hahaha! Muito obrigado

  • Matheus Responder

    Ai você acha o código que está procurando, e o cara não habilita o copiar ¬¬

    • Janio Sarmento Responder

      Aí a pessoa precisa de uma coisa mas não tem a humildade de pedir e fica reclamando como se alguém fosse seu escravo.

      Agora é que não arrumo esse bug mesmo, quero mais é que se foda.

      • Beto Responder

        Depois de 3 anos, esse conteúdo ainda é grande utilidade e valor.
        Obrigado Janio e o Matheus que se foda em 2017 tbm.

Responder MatheusMenu

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.