Versão: 1.2
Autor: [cairesdev]
Descrição:
Este plugin adiciona suporte para rastreamento de visualizações de posts em WordPress. As visualizações são atualizadas via REST API e podem ser consultadas pela API GraphQL.
Adiciona o campo views
ao tipo Post
na API GraphQL.
- Campo:
views
- Tipo:
Int
- Descrição: Número de visualizações do post
query {
post(id: "meu-post", idType: SLUG) {
title
views
}
}
Exponibiliza uma rota REST para incrementar as visualizações de um post.
POST /wp-json/views/v1/hit/{slug}
-
Parâmetro da URL:
slug
– Slug do post (ex:meu-post
) -
Resposta de Sucesso (
200 OK
):
{
"postId": 123,
"slug": "meu-post",
"views": 42
}
-
Erros Possíveis:
400 Bad Request
– Post inválido ou não publicado.
- Usa
graphql_register_types
para adicionar o campoviews
ao tipoPost
. - Usa
register_rest_route
para criar a rota REST/views/v1/hit/{slug}
. - A cada requisição POST, incrementa o campo
views
no meta do post.
- A rota REST está acessível publicamente (
__return_true
), sem necessidade de autenticação.
⚠️ Atenção: Considere proteger a rota se quiser evitar manipulação ou spam de visualizações.
- WordPress com WPGraphQL instalado e ativo.
- Permalinks ativados para uso correto dos slugs.
- Faça uma chamada
POST
ao endpoint REST ao carregar uma página de post via JavaScript. - Exemplo usando
fetch
no frontend:
fetch('/wp-json/views/v1/hit/meu-post', {
method: 'POST'
});
- Em temas com cache agressivo, certifique-se de que a chamada seja feita do lado do cliente para registrar corretamente as visualizações.