Como alguns (ou poucos) sabem, o WordPress foi atualizado para a versão 3.6 no dia 1 (primeiro) de agosto de 2013. Eis que com esta atualização houveram mudanças no editor de menu e com ele um novo bug. Se você ao acessar se deparou com a seguinte mensagem:
Warning: sprintf() [function.sprintf]: Argument number must be greater than zero in /home/seu_usuario/pasta_do_site/wp-admin/nav-menus.php on line 478
(ou algo semelhante, depende do seu provedor)
ATUALIZAÇÃO
Seguindo a dica do BLOG Tudo Para WordPress (http://www.tudoparawordpress.com.br/dicas-wordpress/erro-warning-sprintf-nos-menus-da-atualizacao-do-3-6/) este erro já foi corrigido, para fazer isto de forma automática, simplesmente vá para o menu Painel > Atualizações e clique em Re-Instalar Agora pois a comunidade brasileira já corrigiu o erro na versão oficial, assim atuomáticamente o seu wordpress estará funcionando normalmente, apenas para fins educativos, deixarei presente abaixo a solução que eu encontrei para resolver o problema:
ATENÇÃO
A solução abaixo será mantida apenas para fins educativos: A solução correta é re-instalar a ultima atualização do wordpress e corrigir o problema automáticamente
Não se preocupe. Não afeta o funcionamento, esta é uma mensagem de aviso e não de erro fatal, o site continuará operando normalmente porém aos que querem saber como corrigir isto antes que seja lançada uma solução do canal oficial da equipe do WordPress sugerimos a seguinte mudança, em dois planos, saiba abaixo como corrigir o problema.
Plano A
Simplesmente abrir o arquivo nav-menus.php e comentar a linha 478 que é a seguinte:
Plano B
Já para aqueles que querem resolver o problema e exibir a frase corretamente, lá vai…
Dentro do menu aparência, menus, ao clicar em ajuda, deveria haver uma mensagem entre as duas primeiras linhas dizendo em português, o seguinte:
Os menus podem ser mostrados em posições definidas por seu tema, ou mesmo em barras laterais adicionando-se um widget de Menu Personalizado na tela Widgets. Se o seu tema não suporta o recurso de menus personalizados (os temas padrão Twenty Thirteen e Twenty Twelve suportam), você pode aprender como adicionar esse suporte acessando o link para a Documentação ao lado.
Seguido de um link na palavra Widgets que leva a página de edição de Widgets, nada que vá atrapalhar o usuário. Não vejo quase ninguém acessando aquele menu superior, tanto por que ele é bem escondido.
Para corrigir isto eu alterei a linha 478 do arquivo para que ela ficasse desta maneira.
O que mudei foi que removi o $1, $2, e $3 antes das strings do texto. Isto em teoria, de acordo com a função sprintf do PHP, deveria funcionar (para quem quiser mais detalhes, segue a documentação oficial do PHP aqui). Estes números apenas indicam números aos textos, ou seja, o link para a página de edição de Widgets e os dois nomes de temas que suportam o recurso Twenty Thirteen, Twenty Twelve, mas estranhamente não funcionam como deveriam. Não me perguntem além. Não tenho uma resposta lógica pra isto. 🙁
Feito esta primeira alteração agora temos que mudar o arquivo PO (de tradução para português) que informa a mensagem em português:
Depois, alterei também o arquivo de tradução dentro da pasta wp-content/languages/ chamado admin-pt_BR.po usando um editor de texto, e depois abri o arquivo no Poedit (se você não sabe como usar o programa, acesse este vídeo: http://www.youtube.com/watch?v=bKulLIs6vEI) apenas para salvar e criar o arquivo com a extensão MO que é o arquivo de tradução compilado. Feito isto a linha de tradução ficou desta forma (editei a partir da linha 229 do arquivo:
#: wp-admin/nav-menus.php:478 msgid "Menus can be displayed in locations defined by your theme, even used in sidebars by adding a “Custom Menus” widget on the <a href=\"%s\">Widgets</a> screen. If your theme does not support the custom menus feature (the default themes, %s and %s, do), you can learn about adding this support by following the Documentation link to the side." msgstr "Os menus podem ser mostrados em posições definidas por seu tema, ou mesmo em barras laterais adicionando-se um widget de “Menu Personalizado” na tela <a href=\"%s\">Widgets</a>. Se o seu tema não suporta o recurso de menus personalizados (os temas padrão %s e %s suportam), você pode aprender como adicionar esse suporte acessando o link para a Documentação ao lado."
Agora é só salvar o arquivo PO pra gerar o MO, subir por FTP o PO e o MO para suas devidas pastas e probelma resolvido.
Mas e no futuro? Sim, é importante ressaltar que não se deve NUNCA fazer este tipo de modificação… no CORE (núcleo) do WordPress pois a cada nova atualização você perde tudo que foi modificado.
Então espera aí, vou perder tudo isto se um dia atualizar? Neste caso a resposta é “Sim e não se preocupe” este é só um FIX (correção) temporária para não deixar o pessoal na mão. Muito provávelmente até o fim do mês teremos mais uma atualização com este problema corrigido, até lá você pode resolver desta forma.