Contador de Acessos dos Posts WordPress sem Plugin

Neste post vou te mostrar como guardar os acessos (visitas) que os posts do teu blog WordPress tiveram e como fazer para exibí-los. Sei que aí na internet existem plugin que fazem isso, mas hoje vou te mostrar como é fácil adicionar algumas linhas de código no teu CMS para contar os acessos sem precisar instalar nenhum plugin.

Campos Customizados: Update_post_meta e Get_post_meta

Quando se quer guardar informações específicas para cada post, a melhor forma é trabalhar com campos customizados (custom fields). Neste script vamos utilizar duas funções oferecidas pelo WordPress para trabalharmos com custom fields. São elas:

  1. update_post_meta: Esta função permite-nos atualizar uma determinado campo de um determinado Post. Veja o exemplo abaixo:

    1
    
    update_post_meta($post_id, 'nome_do_campo', 'valor');
    update_post_meta($post_id, 'nome_do_campo', 'valor');

    O primeiro parâmetro deve ser o ID do post o qual você quer modificar o valor do campo
    O segundo parâmetro deve ser o nome do campo que você quer modificar
    O terceiro parâmetro é exatamente o novo valor para o campo

    O Legal do update_post_meta é que, caso o campo que você informou no segundo parâmetro não exista, ele é criado automaticamente para você.

    Outro detalhe sobre update_post_meta é que ele aceita também um quarto parâmetro (opcional) que deve ser o valor antigo do campo que você quer atualizar. Isso é útil em casos onde existem vários campos customizados com o mesmo nome, então se você passar o quarto parâmetro, somente o campo que tiver aquele valor será atualizado. Sem passar o quarto parâmetro, todos os campos com o mesmo nome seriam atualizados pela função.

  2. get_post_meta: Get Post Meta permite você pegar o valor de um campo customizado de um determinado post. Veja o exemplo abaixo:

    1
    
    get_post_meta($post_id, 'nome_do_campo', true);
    get_post_meta($post_id, 'nome_do_campo', true);

    Aí também temos três parâmetros, a saber:

    O primeiro parâmetro é o ID do post o qual você quer obter o valor do campo customizado
    O segundo parâmetro é exatamente o nome do campo que se quer obter o valor
    O terceiro parâmetro deve ser um booleano (true ou false) que define se o retorno será um array ou um valor texto comum. O padrão é false e retorna um array.

Contador de Acessos dos Posts WordPress sem Plugin

Agora que tu aprendeu um pouco sobre campos customizados, fica fácil criar um contador de acessos para cada post. Veja o código abaixo:

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
function anderson_makiyama_get_clicks($post_id){
    
    return (int)get_post_meta($post_id, 'anderson_makiyama_clicks', true);
    
}
 
function anderson_makiyama_update_clicks($content){
    
    global $post;
    
    $post_id = $post->ID;
    
    if(is_single()){
        
        $total = (int)anderson_makiyama_get_clicks($post_id);
        $total++;
        
        update_post_meta($post_id, 'anderson_makiyama_clicks', $total);
        
    }
    
    
    return $content;
    
}
add_filter('the_content', 'anderson_makiyama_update_clicks');
function anderson_makiyama_get_clicks($post_id){
	
	return (int)get_post_meta($post_id, 'anderson_makiyama_clicks', true);
	
}

function anderson_makiyama_update_clicks($content){
	
	global $post;
	
	$post_id = $post->ID;
	
	if(is_single()){
		
		$total = (int)anderson_makiyama_get_clicks($post_id);
		$total++;
		
		update_post_meta($post_id, 'anderson_makiyama_clicks', $total);
		
	}
	
	
	return $content;
	
}
add_filter('the_content', 'anderson_makiyama_update_clicks');

Você deve adicionar este código no arquivo functions.php do teu tema WordPress. A partir daí, para saber ou exibir quantos acessos um dado post teve basta chamar a função anderson_makiyama_get_clicks($post_id) passando o ID do post que você quer obter os acessos.

A função anderson_makiyama_update_clicks é invocada automaticamente sempre que o conteúdo de um artigo é exibido através de the_content, então você não precisa se preocupar com ela.

Conclusão

Se você quer exibir o total de acessos de cada post, deverá editar o código fonte do teu tema e adicionar:

1
 echo anderson_makiyama_get_clicks($post->ID);
 echo anderson_makiyama_get_clicks($post->ID);

Isso pode ser colocado dentro do LOOP ou fora, mas se você for colocar fora do Loop, deverá passar como parâmetro o id do Post corretamente.

Se tu quer inserir a contagem de cliques no meio de um artigo, tu pode fazer o seguinte:

A) Adicione esta shortcode ao teu arquivo functions.php:

1
2
3
4
5
6
7
8
9
10
function anderson_makiyama_get_clicks_shortcode($attr,$cont){
    
    global $post;
    
    $post_id = $post->ID;
    
    return get_post_meta($post_id, 'anderson_makiyama_clicks', true);
    
}
add_shortcode('total_clicks','anderson_makiyama_get_clicks_shortcode');
function anderson_makiyama_get_clicks_shortcode($attr,$cont){
	
	global $post;
	
	$post_id = $post->ID;
	
	return get_post_meta($post_id, 'anderson_makiyama_clicks', true);
	
}
add_shortcode('total_clicks','anderson_makiyama_get_clicks_shortcode');

Agora, na página de edição do post (na aba HTML), coloque o seguinte: [total_clicks]

Coloque [total_clicks] exatamente na posição onde você quer o número de cliques seja exibido. Você pode, por exemplo, usar assim:

O número total de Cliques deste Post é: [total_clicks]

Bom, fica aí a dica.

Até o próximo artigo aqui no blog

Contador de Acessos dos Posts WordPress sem Plugin
4.7 (94.74%) 38 votes

Leave a Reply