25|01|2009 Wordpress: Problemas nos permalinks após atualizar para 2.7

Quando tudo parecia concluído para iniciar as postagens no blog, precisei mudar de servidor. Até então nada grave, porém descobri uma grande dor de cabeça nos permalinks.
Subi o wordpress 2.6 e coloquei o blog todo em dia, depois dos acertos necessários atualizei para versão 2.7 (que é muito melhor que qualquer outra versão), então notei que meus permalinks não funcionavam mais, o erro retornado era a página de 404 - página não encontrada.

Revirei a net até encontrar esse relato no fórum do WP: http://wordpress.org/support/topic/228380

O problema é o seguinte: A nova versão do WP tem um problema com servidores onde o recurso magic_quotes_* está habilitado. Isso ocorre pois existe uma função (que ainda não identifiquei) que utiliza uma contagem de caracteres para obter o endereço para o rewrite . Essa contagem se perde pois o recurso magic_quotes adiciona os caracteres de escape automaticamente em dados que são enviados para o script PHP.

Vejamos o que o site php.net diz sobre esse recurso:

Aviso
Este recurso tornou-se OBSOLETO e REMOVIDO do PHP 6.0.0. Confiar neste recurso é extremamente não recomendado.

Então se está tendo esse problema, desligue esse recurso.

Meu problema continuou pois o servidor alega não poder desativar o recuros já que as configurações são compartilhadas. Nesse momento, meu grande amigo Igor estava sofrendo com o mesmo problema (estamos sob o mesmo servidor). Então eu o ensinei uma solução paliativa apenas para resolver o problema de imediato. Se você sofre com isso aqui vai a dica:

No banco de dados na sua table XYZ_options (onde XYZ é o prefixo que você escolheu para suas tabelas) e procure o registro onde a coluna option_name é igual a rewrite_rules.

Encontrado o registro, obtenha o valor da coluna option_value. Deverá ser algo parecido como isso: a:68:{s:12:”robots.txt$”;s:18:”index.php?robots=1″…

Então basta alterar o valor em destaque, onde S:12 deve virar S:11. Note o novo valor:
a:68:{s:11:”robots.txt$”;s:18:”index.php?robots=1″…

(Atenção: lembre-se que após a reticencias existirá mais dados em seu registro, o exibido aqui é apenas um exemplo)

Pronto, teste agora.

Essa solução deve resolver o problema momentaneamente para os que não podem desativar o magic_quotes_* em seus servidores, porém preciso resaltar que é uma solução provisória pois cada vez que a tabela XYZ_options for atualizada o WP se encarregará de retornar o valor para S:12 e então o problema retornará.

No momento eu e o Igor estamos buscando outra solução, enquanto isso espero que essa dica ajude alguém.

Tags: , , , , ,
Postado em PHP, Wordpress |
1 Comentário