Tutorial de como colocar anúncios diferentes em cada página
Por: Rômulo Augusto em 26 de agosto de 2009, categoria: Desenvolvimento
Já vi uma galerinha querendo gerenciar melhor os anúncios nos seus blogs, uns porque não querem que o Google puna por estarem colocando o Adsense em local inapropriado, outros porque querem colocar outros anúncios (como os do UOL) nas páginas onde o Adsense não é permitido, e outros porque querem otimizar ainda mais seus posts colocando a propaganda que acham que devem nele.
Pensando nisso resolvi mostrar pra vocês uma forma de fazer, que já funciona no Mundo Afora (olha que portifólio hein! =D). É simples mas bem funcional e usa um poderoso recurso do WordPress, que são os campos personalizados ou custom fields.
Primeiro passo: Defina as áreas que você gostaria de colocar os anúncios.
Veja abaixo um exemplo. As partes em vermelho são as áreas determinadas para colocar os anúncios.


Defina um nome para cada área para que ela possa ser usada mais tarde pelas funções.
Por exemplo, a área da primeira figura poderia ter o nome post-topo-afiliado e a da segunda figura poderia ser post-conteudo-afiliado.
Segundo passo: Crie as funções php necessárias para a manipulação dos anúncios.
Um arquivo de funções php, como o arquivo functions.php já existente nos templates wordpress, deve ser criado. Chame-o de user-functions.php. Abaixo está o código php das funções, basta copiar e colar no arquivo que acabou de criar.
<?php
/**
* Usado para conteudos de afiliados que são colocados dinamicamente no post.
* Utiliza um "custom field" e a posição onde tal conteúdo deve ser inserido.
*
* O código do afiliado pode ser colocado manualmente, como o conteúdo do custom field, como também
* pode ser procurado em um arquivo pré-definido. Para usar o arquivo deve-se colocar como valor do
* custom field umas das seguintes opções: "uol", "adsense"
*
* @param $afiliado Custom Field key
* @param $position Posição onde será colocado o conteúdo
*/
function get_conteudo_afiliado($afiliado) {
global $post;
$afiliado_meta = get_post_meta($post->ID, $afiliado, true);
//Por padrão o conteúdo do campo personalizado é o código a ser inserido
$conteudo_afiliado = $afiliado_meta;
$arquivo = $afiliado_meta . "-" . $afiliado;
//Se é afiliado definido em um arquivo, recupera o conteúdo que está no arquivo
//Se for UOL, pega o conteúdo de forma rotativa
if( ($afiliado_meta == "uol") || ($afiliado_meta == "adsense") ) {
$conteudo_afiliado = get_text_from_file($arquivo);
}
return $conteudo_afiliado;
}
/**
* Lê o arquivo e retorna o texto contido nele
* @param $file nome do arquivo SEM EXTENSÃO
*/
function get_text_from_file($file = '') {
$file = trim($file);
if (strlen($file) > 0) {
$file = ABSPATH . "wp-content/" . $file . ".txt";
if (file_exists($file)) {
$fp = fopen($file,'r');
$text = fread($fp, filesize($file));
fclose($fp);
return $text;
}
}
}
/**
* Verifica se algum custom field foi adicionado ao post com a chave especificada
*
* @param $custom_field_key Chave do custom field
*/
function exists_custom_field_key($custom_field_key) {
global $post;
$exists = get_post_meta($post->ID, $custom_field_key);
return ($exists != "");
}
?>
Com estas funções é possível reusar um código que está em um arquivo texto. Para isso, você deve criar um arquivo com o nome na estrutura [nome do afiliado] + "-" + [nome do campo personalizado] + .txt dentro do diretório wp-content, por exemplo adsense-post-topo-afiliado.txt. Esse arquivo conterá o código HTML do anúncio do adsense.
As funções já estão feitas para reutilizar o código para os afiliados uol e adsense. Então, apenas use esses valores se vc já tiver criado os respectivos arquivos.
Terceiro passo: Incluir as funções do arquivo user-functions.php no arquivo functions.php.
Coloque o arquivo user-functions.php no diretório do seu template/theme wordpress (o mesmo diretório de onde está o arquivo functions.php). Depois adicione o código abaixo no final do arquivo functions.php:
<?php include_once (TEMPLATEPATH . '/user-functions.php'); ?>
Quarto passo: Use as funções nos arquivos do seu template.
Identifique, no código HTML, as áreas definidas no primeiro passo e use as funções da seguinte forma:
<?php if(custom_field_key_exists("post-topo-afiliado")) { ?>
<div>
<?php echo get_conteudo_afiliado("post-topo-afiliado"); ?>
</div>
<?php } ?>
Primeiro verifica-se se o campo personalizado post-topo-afiliado está sendo utilizado para depois utilizá-lo.
Quinto passo: Use os campos personalizados em seus posts.
Quando for criar um novo post ou alterar um que já existe, você pode usar os seus "campos personalizados" a vontade.
Se você quer que o código pré-definido do adsense seja mostrado, então utilize:

Caso queira o do UOL então use a palavra " uol " como valor. Caso queira colocar o próprio código HTML do anúncio, então basta colar o código na caixa de texto que indica o valor do campo personalizado.
É isso galera. Caso tenham alguma dúvida ou problema, comentem aí pra a gente tentar resolver.
Valeu.









