Como já falei aqui, o Wordpress não é a peça central do DreamsInCode. Isso, na altura, levantou alguns problemas de integração. Resolvidos que foram, não me preocupei mais.
À pala da brincadeira com os endereços “humanos” (aqui e aqui), que são usados nos projectos aqui no DreamsInCode, andei a monitorizar-lhes o comportamento no sitemap via Google Webmaster Tools. Qual não é a minha surpresa ao verificar que todas as páginas eram reportadas como 404 Not Found, excepto as do blog. Como é que era possível, se eu via as páginas perfeitamente, em vários browsers e em várias ligações. Olhando para o painel Net do Firebug, certinho, direitinho: lá estava o 404 a olhar para mim, em conjunto com todos os dados da página. WTF?!
Escavacando o motor do Wordpress, desde a minha chamada ao blog header, lá acabei por encontrar o gato. Aparentemente, o Wordpress é um sacana egocêntrico, e acha que deve ser o protagonista em cada domínio em que está instalado ou, pelo menos, que ninguém se meta com ele se for instalado à parte. Como tal, quando o motor detecta um pedido vindo de fora do sítio onde está instalado, leva logo um 404 na testa. Como os meus scrips continuam a sua execução normal, enviando os resultados, os browsers viam simultaneamente, um 404 e a página pedida. A página que pediu não existe, mas, se existisse, era igualzinha a esta…
Depois duma pequena sessão imerso no Codex do Wordpress e de algumas experiências, o código necessário para incluir o motor do blog, fora do blog, é o seguinte:
define('WP_USE_THEMES', false); require($_SERVER['DOCUMENT_ROOT'] . "/blog/wp-config.php"); $wp->init(); $wp->parse_request(); $wp->query_posts(); $wp->register_globals();
That’s it. Acabaram-se os 404, e continuo com o motor disponível.