Uma brincadeira de mão na massa com SQL e as tabelas do WordPress.
Você vai precisar de:
- Um blog em WordPress num servidor próprio.
- Uma lugar onde você possa se conectar ao banco de dados (provavelmente o MySQL). Um terminal SSH no seu servidor ou mesmo o PhpMyAdmin servem.
Se você tiver acesso por SSH no servidor onde está seu blog, chame o prompt do mysql assim:
$ mysql -u USUÃRIO -p -h URL_DO_BANCO DATABASE
Trocando USUÃRIO por seu login no mysql, URL_DO_BANCO por a url do seu banco (geralmente 127.0.0.1) e DATABASE por a base de dados (geralmente wordpress). Em seguida será perguntada a sua senha.
Uma vez conectado dentro do seu banco de dados você pode executar algumas queries legais.
Os 10 maiores comentaristas do seu blog: você seleciona da wp_comments (a tabela de comentários do WordPress) selecionando só os nomes e agrupando pelo email do autor e fazendo uma contagem que chamados de quantidade. Também é feito uma ordenação usando o campo contagem. Aqui eu supondo que a pessoa sempre coloque seu próprio email, mas as vezes mude o nome, o que realmente acontece.
SELECT comment_author AS autor, COUNT(*) AS quantidade
FROM wp_comments
GROUP BY `comment_author_email`
ORDER BY quantidade DESC
LIMIT 10
;
Usando isso lá no banco de dados do eupodiatamatando.com que tem uns 3 mil comentários, deu o seguinte:
+---------------------------------------------+------------+
| autor | quantidade |
+---------------------------------------------+------------+
| Silveira | 511 |
| 2007 Janeiro 21 » Eu Podia Ta Matando | 174 |
| Kct | 133 |
| Filho | 91 |
| Dora | 83 |
| Leonardo | 67 |
| manero | 58 |
| Esdras | 52 |
| Marlany | 51 |
| Roney Marques | 50 |
+---------------------------------------------+------------+
10 rows in set (0.12 sec)
Ou seja, em primeiro lugar deu eu mesmo, com 511 comentários. Em segundo, o próprio blog com seus pingbacks. O maior comentarista mesmo foi o comentarista que se identifica como Kct.
Os 10 posts mais comentados: É necessário fazer uma junção entre a tabela dos comentários (wp_comments) e a tabela dos posts (wp_posts) usando o ID do post.
SELECT wp_posts.post_title, COUNT(*) AS quantidade
FROM wp_comments JOIN wp_posts
ON wp_comments.comment_post_ID = wp_posts.ID
GROUP BY wp_posts.ID
ORDER BY quantidade DESC
LIMIT 10
;
A saÃda que eu tive:
+-----------------------------------------+------------+
| post_title | quantidade |
+-----------------------------------------+------------+
| Sobre o vôo 3054 | 104 |
| Chegou o boneco do Capitão Nascimento! | 80 |
| Vamos trocar links? | 74 |
| O celular Linux já está a venda | 64 |
| O Que o Emo disse pra Ema? | 57 |
| Bichos grandes. Falsificações? | 46 |
| Esse ainda tem muito pra upar | 45 |
| Entenda Heroes | 42 |
| Aqui pro iPhone! | 40 |
| Ganhe créditos de graça no celular | 39 |
+-----------------------------------------+------------+
10 rows in set (0.11 sec)
Qual o post você mais comentou: Basta colocar um WHERE e pegar o autor que você quer, no caso, Silveira (eu). Eu coloquei um limite de 10, para pegar só os 10 posts que eu mais comentei.
SELECT wp_posts.post_title, COUNT(*) AS quantidade
FROM wp_comments JOIN wp_posts
ON wp_comments.comment_post_ID = wp_posts.ID
WHERE wp_comments.comment_author = 'Silveira'
GROUP BY wp_posts.ID
ORDER BY quantidade DESC
LIMIT 10
;
O resultado no meu blog foi:
+---------------------------------------------+------------+
| post_title | quantidade |
+---------------------------------------------+------------+
| Vamos trocar links? | 20 |
| Regnum, RPG online gratúito | 11 |
| Promoção: Estamos Dando 97 dólares! | 7 |
| Aqui pro iPhone! | 6 |
| Vamos escrever um livro? | 6 |
| Democracy TV Player | 5 |
| Formatura, novidades | 5 |
| Como eu consegui cancelar minha conta na Oi | 5 |
| Chico Buarque em Fortaleza | 4 |
| Livro Python Guia de Bolso | 4 |
+---------------------------------------------+------------+
10 rows in set (0.02 sec)
Se você quiser ir mais fundo nas consultas eu recomendo dar uma olhada na sintaxe do select do Mysql.