Jestem głęboko zdezorientowany tym: mam instalację WordPress na Media Temple GS [jeden z wielu, które działają dobrze i są skonfigurowane prawie dokładnie tak samo], co czasami daje mi 404 s na całej stronie. Gdy tak się dzieje, w dzienniku błędów PHP pojawiają się 3 błędy:
[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
Pierwsze dwa dotyczą $post
obiektu, a trzecie - tego, get_post()->ID;
co myślę, że jest stworzeniem $post
obiektu.
Mam dwa z tych samych trzech komunikatów o błędach w odstępie prawie dokładnie 25 minut [wyłączone o 2s].
Próbowałem obsługi MT, ale myślą, że to musi być błąd WP. Korzystam z najnowszej wersji WP, ale mam problem z wcześniejszymi wersjami.
Miałem włączone 2 wtyczki: W3 Total Cache i AJAX Thumbnail Rebuild
Testowałem z wtyczką pamięci podręcznej i bez niej, a problem nadal występuje. Właśnie wyłączyłem wtyczkę miniatury, aby zobaczyć, czy to robi jakąkolwiek różnicę.
Proszę, pomóż mi to doprowadzić do szaleństwa! [i chciałem dzisiaj publicznie uruchomić tę stronę]
EDYTOWAĆ
Powinienem również wspomnieć, że widziałem ten błąd w niektórych, ale nie we wszystkich innych instalacjach WordPress na tym serwerze. Myślę, ale nie mogę być w 100% pewien, że te pokazujące błędy są nowszymi instalacjami niż te, które działają dobrze. Chociaż wszystkie instalacje są w pełni zaktualizowane.
EDYCJA 2
Właśnie pracuję nad innym projektem WP i zrozumiałem przynajmniej, co oznaczają te 3 błędy. Mogę odtworzyć dokładnie te trzy błędy php, przechodząc do strony indeksu niestandardowego typu postu, który nie istnieje. Jednak to nie wyjaśnia, dlaczego spowodowałoby to 404 w tym pytaniu, zwłaszcza że nie dzieje się tak tylko na stronach indeksu niestandardowych typów postów. Myślę jednak, że musi to być w jakiś sposób powiązane z niestandardowymi typami postów.
Odpowiedzi:
Istnieją dwa rodzaje błędów 404: generowane przez WordPress i generowane przez serwer.
W niektórych środowiskach serwerowych serwer 404 może być niedokładnie wyświetlany przez serwer w przypadku przeciążenia procesora lub z powodu pewnych błędów w konfiguracji itp. Zwykle generowane przez serwer błędy 404 powiedzą coś w rodzaju „Nginx” lub „Apache” na dole strona (zależy od typu serwera).
W innych sytuacjach WordPress (PHP) może generować „fałszywie dodatnie” błędy 404, ponieważ wtyczki bezpieczeństwa blokują dostęp do załadowanych zasobów:
Dlaczego czasami dostaję błąd 404, gdy próbuję zaktualizować stronę za pomocą Elementora?
https://wordpress.org/support/topic/getting-false-positive-404-errors-with-newest-update/
Spróbuj wyłączyć wszelkie wtyczki bezpieczeństwa, wyczyść pamięć podręczną i odśwież stronę. Przyczyną mogą być również moduły bezpieczeństwa, takie jak ModSecurity zainstalowane na serwerze.
Przyczyną może być również źle zakodowany motyw lub wtyczka. Sprawdź, czy na wszystkich zaangażowanych stronach jest zainstalowany wspólny motyw lub wtyczka. A jeśli ten problem występuje tylko w przypadku hostingu Media Temple, możliwe, że coś jest źle skonfigurowane, a nawet że serwer jest zbyt obciążony ...
źródło
Nie masz wystarczających informacji, aby rozwiązać problem. Spróbuj dodać śledzenie pełnego stosu i zażądaj informacji do dziennika błędów, aby zbadać problem.
Możesz utworzyć własną niestandardową procedurę obsługi błędów, aby dodać dane śledzenia stosu i żądać informacji do dziennika błędów.
Możesz sprawdzić, czy to działa, dodając trigger_error gdzieś w kodzie, np. W
single.php
pliku.Twój dziennik błędów powinien wypisać coś takiego:
Dzięki tego rodzaju wiadomościom o wiele łatwiej będzie dowiedzieć się, gdzie jest problem.
źródło