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.