Como criar um gráfico de número de posts (WordPress)

A ideia, aqui, é ter um gráfico de número de posts em um ou mais blogs, por tempo.

Para, começar, um disclaimer que vai ser completamente ignorado: a ideia, aqui, não é passar a usar o número de posts como medida de valor de um blog, ou como objectivo a cumprir, ou seja, quantidade acima da qualidade! Não é nada disso - mas já sei que vou ser acusado de promover tal coisa, mesmo assim. Isto é mais “por piada” do que outra coisa.

Pode, no entanto, ser inspirador - assumindo que se escreve posts interessantes, úteis, de qualidade - olhar para trás e ver quantos posts havia, sei lá, há 6 meses, e quantos há agora. E pode ser interessante observar as próprias tendências de blogging.

Se achas, porém, que olhar para a evolução do número de posts vai fazer com que passes a escrevê-los só para ver a linha subir… esquece tudo isto. Simples. Não quero é ser acusado de promover a subida do número de posts como objectivo principal. :)

Sendo assim… aqui vai.


Isto é para blogs em WordPress, em que se tem acesso de shell ao servidor, e se pode fazer queries à base de dados em MySQL. Se tens o blog alojado no WordPress.com, por exemplo, não poderás fazer isto. Se usas outro software, isto é possível, mas de outra forma - terás de inventar tu as queries.

Assumo também que cada blog está numa base de dados diferente. O WordPress permite pô-los todos numa, com prefixos diferentes nas tabelas, mas eu prefiro tê-las separadas. Mais uma vez, será só questão de adaptar as queries, passando a ser todas à mesma BD, mas a tabelas diferentes.

Obviamente, é preciso ter o MRTG instalado.

Anyway, aqui vai:

1- ficheiro /etc/mrtg-blogposts.cfg

WorkDir: /var/www/htdocs/blogposts
Options[blogposts]: nopercent,noi,growright,nobanner,nolegend,noinfo,gauge,integer
Refresh: 6000
Target[blogposts]: `/root/bin/blogposts.php`
MaxBytes[blogposts]: 5000
Title[blogposts]: Blog Posts
PageTop[blogposts]: <h1>Blog Posts</h1>
XSize[blogposts]: 500
YSize[blogposts]: 250
XScale[blogposts]: 1.4
YScale[blogposts]: 1.4
YLegend[blogposts]: posts
ShortLegend[blogposts]: posts
Legend1[blogposts]: Blog Posts
Legend3[blogposts]: Max Posts
LegendI[blogposts]:  Blog Posts:
LegendO[blogposts]:  Blog Posts:

2- ficheiro /root/bin/blogposts.php

#!/usr/local/bin/php
<?php
$posts[1] = rtrim (`mysql -s -u blog1user -pblog1pw blog1 -e 'select count(*) from wp_posts;' `);
$posts[2] = rtrim (`mysql -s -u blog2user -pblog2pw blog2 -e 'select count(*) from wp_posts;' `);
$posts[3] = rtrim (`mysql -s -u blog3user -pblog3pw blog3 -e 'select count(*) from wp_posts;' `);
# ...
$total = array_sum ($posts);
print "$total\n";
print "$total\n";
print `uptime`;
print `uname -n`;
?>

NOTA 1: o script está em /root/bin , porque tem as passwords das bases de dados.
NOTA 2: obviamente, é necessário alterar blog#user, blog#pw e blog#.
NOTA 3: se houver mais blogs a contar, é só acrescentar as queries em “# …”, no script.

3- no crontab de root:

*/5 * * * * /usr/local/bin/mrtg /etc/mrtg-blogposts.cfg

E é tudo. Assumo que /var/www/htdocs/blogposts existe, que o servidor web está configurado para essa directoria estar visível, e assim por diante.

0 Responses to “Como criar um gráfico de número de posts (WordPress)”


  1. No Comments

Leave a Reply

Citar o texto seleccionado





Bad Behavior has blocked 314 access attempts in the last 7 days.

Attribution-NonCommercial-NoDerivs 2.5
Attribution-NonCommercial-NoDerivs 2.5