Você realizou um ajuste em seu Site WordPress que gerou problemas no carregamento da imagem?
Então vou presentar uma possível solução, super simples para quem migrou de servidor e o seu WordPress não atualizou o dos attachments.
No meu caso um cliente informou após atualização de versão 6.0.2 do WordPress que foi realizado algumas imagens deixaram de ser apresentadas no site. Ao analisar percebi que suas URLs, foram quebradas junto ao banco de dados.
Gerando a mensagem abaixo:
Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure image '<URL>'. This content should also be served over HTTPS.
Sub mensagem da mensagem anterior:
Mixed Content: The page at ‘https://www.seusite.com.br/’ was loaded over HTTPS, but requested an insecure image ‘http://www.seusite.com.br/wp-content/uploads/2019/05/bg.jpg’. This content should also be served over HTTPS.
Então, como corrigir as URLs quebradas das imagens em mídia no WordPress?
Para agilizar o processo optei ao caminho mais simples, não indo a manutenção do banco de dados via PHPMyAdmin e mudar via UPDATE no SQL.
Mas sim, indo em busca de um plugin e o escolhido foi Search and Relace. Muito simples usar ele e falai o passo a passo logo mais em baixo.
- Primeiramente antes de tudo faça backup do seu banco de dados. Depois baixe o plugin e instale no WordPress
- Navegue até Ferramentas/Search & Replace
- Digite a URL antiga no campo Search for. Exemplo: http://seusite.com.br
- Digite a URL nova ou o “s” no http no campo Replace with. Exemplo: https://seusite.com.br
- Marque a opção All – search and replace! Ou você pode escolher a tabela wp_post para os atualizar as imagens (attachments)
- Se a opção Dry Run estiver marcada, desmarque ela, pois serve só para você efetuar o teste antes de aplicar mesmo no seu banco
- Depois tem duas opção que a primeira você pode exportar para um script sql que o próprio plugin gera e a outra opção o próprio plugin faz o update no banco de dados e já está tudo pronto, prefiro essa.
- Clique em Do Search & Replace e aguarde a mensagem de finalização
Obs.: Você precisa prestar bastante atenção com a barra no final da URL. No caso tenha feito com a barra, terá que restaurar o backup e refazer todo o processo.
Também pode ser feito via SQL através de uma query do MySQL para alterar o WordPress de HTTP para HTTPS no banco de dados:
UPDATE wp_posts SET guid = replace(guid, 'http://www.yoursite.com','https://www.yoursite.com');
Fatal error: Uncaught Error: Call to undefined function have_rows() in /home/meu-site-com.br/public_html/wp-content/themes/meusite/single.php:28 Stack trace: #0 /home/meu-site-com.br/public_html/wp-includes/template-loader.php(106): include() #1 /home/meu-site-com.br/public_html/wp-blog-header.php(19): require_once(‘/home/emusite…’) #2 /home/meu-site-com.br/public_html/index.php(17): require(‘/home/meusite…’) #3 {main} thrown in /home/meu-site-com.br/public_html/wp-content/themes/meusite/single.php on line 28