Estou profundamente confuso com este: eu tenho uma instalação do WordPress em um Media Temple GS [um dos muitos que funcionam bem e são configurados quase exatamente da mesma maneira], o que ocasionalmente me dá 404s em todo o site. Quando isso acontece, recebo 3 erros juntos no meu log de erros do PHP:
[01-Nov-2013 22:20:50 UTC] PHP Notice: Trying to get property of non-object in /nfs/---/---/mnt/---/domains/---.---/html/wp-includes/post-template.php on line 275
[01-Nov-2013 22:20:50 UTC] PHP Notice: Trying to get property of non-object in /nfs/---/---/mnt/---/domains/---.---/html/wp-includes/post-template.php on line 209
[01-Nov-2013 22:20:50 UTC] PHP Notice: Trying to get property of non-object in /nfs/---/---/mnt/---/domains/---.---/html/wp-includes/post-template.php on line 29
Os dois primeiros dizem respeito ao $post
objeto e o terceiro a isso: get_post()->ID;
que eu acho que é a criação do $post
objeto.
Eu tenho dois desses trios idênticos de mensagens de erro com exatamente exatamente 25 minutos de intervalo [2s].
Eu tentei o suporte ao MT, mas eles acham que deve ser um erro do WP. Estou executando a versão mais recente do WP, mas esse problema ocorreu nas versões anteriores.
Eu tinha dois plugins ativados: W3 Total Cache & AJAX Thumbnail Rebuild
Eu testei com e sem o plugin de cache e o problema persiste. Acabei de desativar o plug de miniatura para ver se faz alguma diferença.
Por favor, ajude isso está me deixando louco! [e eu queria lançar este site publicamente hoje]
EDITAR
Eu também deveria ter mencionado que eu vi esse erro em algumas, mas não em todas as outras instalações do wordpress neste servidor. Penso, mas não posso ter 100% de certeza, que aqueles que apresentam erros são instalações mais recentes do que as que funcionam bem. Embora todas as instalações sejam totalmente atualizadas.
EDIT2
Estou apenas trabalhando em outro projeto WP e percebi pelo menos o que esses três erros significam. Eu posso reproduzir exatamente esses três erros de php indo para a página de índice de um tipo de postagem personalizado que não existe. No entanto, isso não explica por que isso causaria o 404 nesta questão, especialmente porque isso não acontece apenas em páginas de índice de tipo de postagem personalizadas. No entanto, acho que isso deve estar relacionado aos tipos de postagem personalizados de alguma forma.
Respostas:
Existem dois tipos de erros 404: gerado pelo WordPress e gerado pelo servidor.
Em alguns ambientes de servidor, os 404s podem ser exibidos incorretamente pelo servidor em casos de sobrecarga da CPU ou devido a certas instâncias de configuração incorreta etc. Geralmente, os erros 404 gerados pelo servidor dizem algo como "Nginx" ou "Apache" na parte inferior do página (depende do tipo de servidor).
Em outras situações, erros 404 "falsos positivos" podem ser gerados pelo WordPress (PHP) porque os plug-ins de segurança estão bloqueando o acesso aos recursos carregados:
Por que às vezes estou recebendo um erro 404 quando tento atualizar uma página com Elementor?
https://wordpress.org/support/topic/getting-false-positive-404-errors-with-newest-update/
Tente desativar todos os plug-ins de segurança, limpar caches e atualizar a página. Módulos de segurança como ModSecurity instalados no servidor também podem ser a causa.
Também pode ser causado por um tema ou plugin mal codificado. Verifique se há um tema ou plug-in comum instalado em todos os sites envolvidos. E se esse problema ocorrer apenas na hospedagem do Media Temple, é possível que eles tenham algo mal configurado ou até mesmo que seu servidor esteja com muita carga ...
fonte
Você não possui informações suficientes para resolver seu problema. Tente adicionar o rastreamento completo da pilha e solicitar informações ao seu log de erros para investigar um problema.
Você pode criar seu próprio manipulador de erros personalizado para adicionar rastreamento de pilha e solicitar informações ao seu log de erros.
Você pode verificar se isso está funcionando adicionando trigger_error em algum lugar do seu código, por exemplo, no
single.php
arquivo.Seu log de erros deve gerar algo assim:
Com esse tipo de mensagem, será muito mais fácil descobrir onde está o problema.
fonte