Uma das formas mais atrativas de conseguir escritores para o seu blog, é através do compartilhamento das receitas de publicidade com eles. Um dos programas mais usados no mercado é o Google Adsense, que lhe permite ganhar dinheiro por cada clique realizado em seu blog. Para conseguir mais autores para o seu blog e/ou compartilhar as receitas atuais com os diversos autores do seu blog, você poderá simplesmente criar algumas funções que lhe permitam montar uma página de opções e compartilhar uma percentagem do número de impressões dos anúncios. Logicamente, ao compartilhar as receitas com os seus autores, você está a motivá-los para produzirem mais conteúdos, o que direta ou indiretamente irá gerar maior receita para todos. Este código pode ser igualmente adaptado a outros tipos de programas de monetização, como os programas de afiliados, por exemplo.
Recentemente os colegas do wptuts lançaram algumas dicas acerca da construção de uma página de opções deste género, e a verdade é que fazendo na mão, você evita o uso desnecessário de plugins, tornando seu blog mais rápido e oferecendo uma maior fiabilidade na gestão dos anúncios. Ao longo do tutorial você irá perceber que na verdade montar uma funcionalidade destas é bem mais simples do que possa parecer!
CRIANDO UMA PÁGINA DE OPÇÕES
Para este tutorial iremos usar o tema Twenty Eleven que vem como padrão no WordPress, mas você poderá logicamente adaptar a qualquer tema WordPress que tenha ou utilize. Como primeiro passo, precisamos criar uma página de opções onde o usuário/autor possa colocar o seu ID de Publisher do Adsense. Abra seu ficheiro functions.php e no fundo dele, coloque o código abaixo. Este trecho de código irá registrar um novo Menu de Admin, usando a função adshare_menu
.
1
2
|
// Create Custom Settings Menu add_action( 'admin_menu' , 'adshare_menu' ); |
Depois disso, criamos o menu adshare e chamamos a função add_submenupage
. O primeiro parâmetro irá determinar o menu parente da página de opções.
1
2
3
4
|
function adshare_menu() { //Create Sub-Level Menu Page under Settings add_submenu_page( 'options-general.php' , 'Ad Share Settings' , 'Ad Share' , 'manage_options' , 'adshare_settings_page' , 'adshare_settings_page' ); } |
CRIANDO O VISUAL DA PÁGINA DE OPÇÕES
Agora precisamos desenhar o layout para a página de opções. Tome nota que a função a chamar é a função adshare_settings_page
, tal como no último parâmetro do código anterior.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
function adshare_settings_page() { // Must check that the user has the required capability if (!current_user_can( 'manage_options' )) { wp_die( __( 'Você não tem permissões suficientes para ver essa página.' ) ); } ?> <div class = "wrap" > <h2>Opções do Google Adsense</h2> <form method= "post" action= "options.php" > <?php wp_nonce_field( 'update-options' ) ?> <p><strong>ID de Publisher do Adsense:</strong><br /> <input type= "text" name= "publisher-id" size= "45" value= "<?php echo get_option('publisher-id'); ?>" /> </p> <p><input type= "submit" name= "Submit" value= "Salvar" /></p> <input type= "hidden" name= "action" value= "update" /> <input type= "hidden" name= "page_options" value= "publisher-id" /> </form> </div> <?php } |
O resultado final será algo como isso:
CRIANDO UM CAMPO EXTRA PARA O USUÁRIO
Nosso próximo passo é criar a opção para o usuário salvar o seu ID de Publisher do Adsense a partir do seu perfil pessoal. Algo desse género assim:
Para adicionar a possibilidade de tanto o Admin como os usuários e autores poderem atualizar seus perfis com o ID do Adsense, iremos precisar chamar dois ganchos do WordPress. Os ganchos são edit_user_profile
e show_user_profile
. Adicione o seguinte código no seu ficheiro:
1
2
|
add_action( 'show_user_profile' , 'adshare_profile_fields' ); add_action( 'edit_user_profile' , 'adshare_profile_fields' ); |
ADICIONANDO O FORMULÁRIO DE PREENCHIMENTO
Agora que você adicionou os ganchos, precisamos chamar a função adshare_profile_field
no segundo parâmetro. Esta função guarda os campos de preenchimento no perfil do usuário. Você pode customizar o HTML da forma que bem desejar, mas tenha a certeza de que mantém os atributos de nome e valor.
1
2
3
4
5
6
7
8
9
10
11
12
|
function adshare_profile_fields( $user ) { ?> <h3>Opções do Google Adsense</h3> <table class = "form-table" > <tr> <th><label for = "twitter" >ID de Publisher do Adsense</label></th> <td> <input type= "text" name= "publisher-id" id= "publisher-id" value= "<?php echo esc_attr( get_the_author_meta( 'publisher-id', $user->ID ) ); ?>" class = "regular-text" /><br /> <span class = "description" >Adicione seu ID de Publisher</span> </td> </tr> </table> <?php } |
SALVANDO O CAMPO DE PERFIL
Pese embora já tenhamos criado os campos de perfil, a verdade é que não temos nenhuma função que grave a informação desses campos. Por forma a atualizarmos as informações de perfil de um ususário, precisaremos chamar dois ganchos de ação do WordPress; o personal_options_update
e o edit_user_profile_update
. Adicione o seguinte código ao seu ficheiro:
1
2
|
add_action( 'personal_options_update' , 'adshare_save_profile_fields' ); add_action( 'edit_user_profile_update' , 'adshare_save_profile_fields' ); |
Agora vamos escrever a função adshare_save_profile_fields
. Está função irá puxar a informação do POST
e gravá-la nas informação de meta do usuário. Tal como quando um usuário atualiza o seu nome, o nosso campo será adicionado.
1
2
3
4
5
6
|
function adshare_save_profile_fields( $user_id ) { if ( !current_user_can( 'edit_user' , $user_id ) ){ return false; } update_usermeta( $user_id , 'publisher-id' , $_POST [ 'publisher-id' ] ); } |
E assim criámos um campo extra para os autores. No próximo passo, iremos dar uso a esse campo.
ADICIONANDO ADSENSE AO ARTIGO
Por fim temos uma última função a acrescer em nosso ficheiro functions.php. Vamos criar a função que escolhe o ID do autor e coloca o anúncio do Adsense no artigo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
function adsense_ad() { if (get_the_author_meta( 'publisher-id' )){ $input = array (get_option( 'publisher-id' ), get_the_author_meta( 'publisher-id' )); } else { $input = array (get_option( 'publisher-id' )); } shuffle( $input ); ?> <script type= "text/javascript" ><!-- google_ad_client = "ca-<?php echo $input[0]; ?>" ; google_ad_width = 468; google_ad_height = 60; //--> </script> <script type= "text/javascript" src= "http://pagead2.googlesyndication.com/pagead/show_ads.js" ></script> <?php } |
CHAMANDO A FUNÇÃO NA PÁGINA
Por fim, poderemos finalmente chamar a função adsense_ad()
dentro do nosso ficheiro single.php para mostrar o Adsense em nossos artigos. Para este exemplo, colocámos o anúncio entre o artigo e os comentários.
1
2
3
|
<?php get_template_part( 'content' , 'single' ); ?> <?php adsense_ad(); ?> //Call Adsense Function <?php comments_template( '' , true ); ?> |
CÓDIGO COMPLETO
Eis então o código completo para criar todas essas funcionalidades debatidas ao longo do tutorial.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
// Create Custom Settings Menu add_action( 'admin_menu' , 'adshare_menu' ); function adshare_menu() { //Create Sub-Level Menu Page under Settings add_submenu_page( 'options-general.php' , 'Ad Share Settings' , 'Ad Share' , 'manage_options' , 'adshare_settings_page' , 'adshare_settings_page' ); } function adshare_settings_page() { //must check that the user has the required capability if (!current_user_can( 'manage_options' )) { wp_die( __( 'Você não tem permissões suficientes para acessar esta página.' ) ); } ?> <div class = "wrap" > <h2>Opções do Google Adsense</h2> <form method= "post" action= "options.php" > <?php wp_nonce_field( 'update-options' ) ?> <p><strong>ID de Publisher do Adsense:</strong><br /> <input type= "text" name= "publisher-id" size= "45" value= "<?php echo get_option('publisher-id'); ?>" /> </p> <p><input type= "submit" name= "Submit" value= "Salvar" /></p> <input type= "hidden" name= "action" value= "update" /> <input type= "hidden" name= "page_options" value= "publisher-id" /> </form> </div> <?php } add_action( 'show_user_profile' , 'adshare_profile_fields' ); add_action( 'edit_user_profile' , 'adshare_profile_fields' ); function adshare_profile_fields( $user ) { ?> <h3>Opções do Google Adsense</h3> <table class = "form-table" > <tr> <th><label for = "twitter" >ID de Publisher do Adsense</label></th> <td> <input type= "text" name= "publisher-id" id= "publisher-id" value= "<?php echo esc_attr( get_the_author_meta( 'publisher-id', $user->ID ) ); ?>" class = "regular-text" /><br /> <span class = "description" >Adicione seu ID de Publisher</span> </td> </tr> </table> <?php } add_action( 'personal_options_update' , 'adshare_save_profile_fields' ); add_action( 'edit_user_profile_update' , 'adshare_save_profile_fields' ); function adshare_save_profile_fields( $user_id ) { if ( !current_user_can( 'edit_user' , $user_id ) ){ return false; } update_usermeta( $user_id , 'publisher-id' , $_POST [ 'publisher-id' ] ); // } function adsense_ad() { if (get_the_author_meta( 'publisher-id' )){ $input = array (get_option( 'publisher-id' ), get_the_author_meta( 'publisher-id' )); } else { $input = array (get_option( 'publisher-id' )); } shuffle( $input ); ?> <script type= "text/javascript" > <!-- google_ad_client = "ca-<?php echo $input[0]; ?>" ; google_ad_width = 468; google_ad_height = 60; //--> </script> <script type= "text/javascript" src= "http://pagead2.googlesyndication.com/pagead/show_ads.js" ></script> <?php } |
CONCLUSÃO
No exemplo em cima, usámos um banner de 468×60 entre o artigo e os comentários, mas você poderá logicamente adaptar o código para mostrar outros formatos de anúncios, e depois usar um pouco de CSS para os colocar nos locais que você mais deseja em seu blog. No entanto, agora que você já sabe como criar essas funcionalidades, basta praticar um pouco para chegar nos resultados desejados!
Até Já!