Je suis profondément confus par celui-ci: j'ai une installation WordPress sur un Media Temple GS [l'un des nombreux qui fonctionnent bien et sont configurés presque exactement de la même manière], ce qui me donne parfois 404s sur tout le site. Lorsque cela se produit, j'obtiens 3 erreurs ensemble dans mon journal d'erreurs 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
Les deux premiers se rapportent à l' $post
objet et le troisième à ceci: ce get_post()->ID;
qui, je pense, est la création de l' $post
objet.
J'ai deux de ces trios identiques de messages d'erreur presque exactement à 25 minutes l'un de l'autre [éteints par 2 secondes].
J'ai essayé le support MT mais ils pensent que ce doit être une erreur WP. J'utilise la dernière version de WP mais j'ai rencontré ce problème avec les versions antérieures.
J'avais 2 plugins activés: W3 Total Cache & AJAX Thumbnail Rebuild
J'ai testé avec et sans le plugin de cache et le problème persiste. Je viens de désactiver la prise miniature pour voir si cela fait une différence.
S'il vous plaît, aidez-moi à devenir fou! [et je voulais lancer publiquement ce site aujourd'hui]
ÉDITER
J'aurais également dû mentionner que j'ai vu cette erreur sur certaines mais pas toutes les autres installations wordpress sur ce serveur. Je pense, mais je ne peux pas être sûr à 100%, que ceux qui montrent des erreurs sont des installations plus récentes que celles qui fonctionnent bien. Bien que toutes les installations soient entièrement mises à jour.
EDIT2
Je travaille juste sur un autre projet WP et j'ai réalisé au moins ce que ces 3 erreurs signifient. Je peux reproduire exactement ces trois erreurs php en accédant à la page d'index d'un type de message personnalisé qui n'existe pas. Cependant, cela n'explique pas pourquoi cela provoquerait le 404 dans cette question, d'autant plus que cela ne se produit pas uniquement sur les pages d'index de type de message personnalisé. Cependant, je pense que cela doit être lié aux types de messages personnalisés d'une manière ou d'une autre.
Réponses:
Il existe deux types d'erreurs 404: générées par WordPress et générées par le serveur.
Dans certains environnements de serveur, les 404 peuvent être affichés de manière inexacte par le serveur en cas de surcharge du processeur ou en raison de certaines erreurs de configuration, etc. Habituellement, les erreurs 404 générées par le serveur indiquent quelque chose comme "Nginx" ou "Apache" au bas de la page (dépend du type de serveur).
Dans d'autres situations, des erreurs 404 "faux positifs" pourraient être générées par WordPress (PHP) car les plugins de sécurité bloquent l'accès aux ressources chargées:
Pourquoi ai-je parfois une erreur 404 lorsque j'essaie de mettre à jour une page avec Elementor?
https://wordpress.org/support/topic/getting-false-positive-404-errors-with-newest-update/
Essayez de désactiver les plug-ins de sécurité, de vider les caches et de rafraîchir la page. Les modules de sécurité tels que ModSecurity installés sur votre serveur pourraient également en être la cause.
Cela peut également être causé par un thème ou un plugin mal codé. Vérifiez si un thème ou un plugin commun est installé sur tous les sites concernés. Et si ce problème ne se produit que sur l'hébergement Media Temple, il est possible qu'ils aient quelque chose de mal configuré, ou même que votre serveur soit trop chargé ...
la source
Vous n'avez pas suffisamment d'informations pour résoudre votre problème. Essayez d'ajouter une trace de pile complète et de demander des informations à votre journal des erreurs pour enquêter sur un problème.
Vous pouvez créer votre propre gestionnaire d'erreurs personnalisé pour ajouter une trace de pile et demander des informations à votre journal des erreurs.
Vous pouvez vérifier si cela fonctionne en ajoutant trigger_error quelque part dans votre code, par exemple dans un
single.php
fichier.Votre journal des erreurs devrait produire quelque chose comme ça:
Avec ce type de message, il sera beaucoup plus facile de découvrir où se situe le problème.
la source