E, de repente, seu site sai do ar com uma mensagem parecida com essa:
Fatal error: Uncaught Error: Call to undefined function wp_get_server_protocol() in /home1/kemonostudio/public_html/wp-includes/functions.php:1431
Stack trace:
#0 /home1/kemonostudio/public_html/wp-includes/class-wp.php(741): status_header(200)
#1 /home1/kemonostudio/public_html/wp-includes/class-wp.php(761): WP->handle_404()
#2 /home1/kemonostudio/public_html/wp-includes/functions.php(1310): WP->main('')
#3 /home1/kemonostudio/public_html/wp-blog-header.php(16): wp()
#4 /home1/kemonostudio/public_html/index.php(17): require('/home1/kemonost...')
#5 {main} thrown in /home1/kemonostudio/public_html/wp-includes/functions.php on line 1431
A solução é complexa e assustadora mas a boa notícia é que ela existe e pode ser aplicada rapidamente seguindo o passo-a-passo que vou aqui descrever.
Não consegui, até o momento, identificar porque esse erro ocorre. Se por causa de uma atualização automática o ataque de algum malware. O que pude perceber é que alguns aquivos do WordPress foram alterados no dia em que começou a pane.
Ao perceber isso sobrescrevi a functions.php por outra teoricamente saudável mas então disparou outros erros em outras rotinas. Percebi que a solução seria sobrescrever todos os arquivos do WordPress, uma vez que a fazer isso arquivo por arquivo geraria inúmeros erros em cascata.
Mas então veio o temor: se eu sobrescrever todos os arquivos do WordPress, isso não iria desconfigurar meu site? Ele já está com tema aplicado, artigo, diversas características de funcionalidades de formatação que eu não gostaria de ter que refazer. A resposta feliz é que todas as informações de formatação e funcionalidade do seu site WordPress estão no banco de dados, então você pode sim baixar a última versão da plataforma diretamente no site oficial e sobrescrever todos os arquivos em seu servidor.
O único cuidado que deve ser tomado é em relação ao arquivo “wp-config.php”, que fica localizado no diretório raiz, pois lá está a configuração de acesso ao banco de dados. Mesmo assim, caso apague esse arquivo ou o sobrescreva, a solução é fácil, basta reconfigurar o WordPress para se conectar ao banco de dados corretamente novamente.
// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define( 'DB_NAME', 'nome_do_bd' ); /** MySQL database username */ define( 'DB_USER', 'usuario_do_bd' ); /** MySQL database password */ define( 'DB_PASSWORD', 'senha_do_bd' ); /** MySQL hostname */ define( 'DB_HOST', 'localhost' ); /** Database Charset to use in creating database tables. */ define( 'DB_CHARSET', 'utf8mb4' ); /** The Database Collate type. Don't change this if in doubt. */ define( 'DB_COLLATE', '' );
Essas são as linhas do aquivo “wp-config.php” que registram as informações de acesso ao banco de dados. Por garantia, faça uma cópia deste arquivo em local seguro, e também anote as informações contidas em “nome_do_bd”, “usuario_do_bd” e “senha_do_bd”. Caso você perca o arquivo que está no local original pode subrescrever com o arquivo que você salvou ou, em último caso, simplesmente preencher novamente as informações de nome, usuário e senha do BD.
Passo a Passo
1. Baixe os arquivos originais do WordPress diretamente do site deles clicando no botão “Download Wordpres x.x.x”.
https://wordpress.org/download
2. Você receberá um aquivo .zip com todos os arquivos que compõem o sistema WordPress. Descompacte esses aquivos em algum local de seu conhecimento. Ao final você terá algo desse tipo:
Mode LastWriteTime Length Name
---- ------------- ------ ----
da---l 13/04/2022 08:01 wp-admin
da---l 13/04/2022 08:01 wp-content
da---l 13/04/2022 08:02 wp-includes
-a---l 13/04/2022 07:55 405 index.php
-a---l 13/04/2022 07:55 19915 license.txt
-a---l 13/04/2022 07:55 7437 readme.html
-a---l 13/04/2022 07:55 7165 wp-activate.php
-a---l 13/04/2022 07:55 351 wp-blog-header.php
-a---l 13/04/2022 07:55 2338 wp-comments-post.php
-a---l 13/04/2022 07:55 3001 wp-config-sample.php
-a---l 13/04/2022 07:55 3939 wp-cron.php
-a---l 13/04/2022 07:55 2496 wp-links-opml.php
-a---l 13/04/2022 07:55 3900 wp-load.php
-a---l 13/04/2022 07:55 47916 wp-login.php
-a---l 13/04/2022 07:55 8582 wp-mail.php
-a---l 13/04/2022 07:55 23025 wp-settings.php
-a---l 13/04/2022 07:55 31959 wp-signup.php
-a---l 13/04/2022 07:55 4747 wp-trackback.php
-a---l 13/04/2022 07:55 3236 xmlrpc.php
3. No servidor, vá até o diretório principal, aquele que vai gerar o site, normalmente “public_html” ou coisa parecida e apague todos os arquivos e pastas listadas acima EXCETO:
- wp-config.php (não está na lista acima, mas está lá no servidor)
- wp-content (pasta)
Tome muito cuidado neste processo porque o arquivo acima, “wp-config.php” e a pasta “wp-content” contém conteúdo vital para a montagem do seu site.
Via FTP
1. Selecione todos esses aquivos e pastas, exceto a pasta “wp-content” e envie, via FTP, para o diretório raiz em seu servidor. Se o seu provedor utliza o CPanel, você pode pular este passo e ir direto para o passo 4.
Via CPanel
1. Vá para o diretório principal da sua hospedagem, aquele que contém o conteúdo a ser exibido na web. Normalmente “public_html” e clique em “Carregar” para enviar o arquivo que acabou de baixar lá no site WordPress.org.
2. Selecione o arquivo e faça o envio.
3. De volta ao gerenciador de arquivos, selecione o arquivo que acabou de enviar (wordpress-x.x.x.zip) e então clique em “Extrair”.
4. Aceite o local sugerido, que normalmente será o mesmo diretório onde está localizado o arquivo .zip e clique em “Extract”.
5. Clique em “Recarregar” e observe que agora existe um novo subdiretório, chamado “wordpress” no diretório principal.
7. Entre no novo subdiretório “wordpress”, selecione todos os arquivos e pastas e então clique em “Mover”.
8. Apague o “/wordpress” do caminho de destino, para que os arquivos sejam movidos para o diretório principal. No caso do nosso exemplo, ficaria apenas “/public_html”.
Finalização
Realizados os processos acima, tente acessar seu site novamente. Ele deverá estar funcionando.
Se você achou esse conteúdo útil ou relevante, considere assinar este blog e fazer um comentário lá no final. Para assinar basta preencher seu e-mail na caixa abaixo: