Jak naprawić problem pustego pulpitu nawigacyjnego w WordPress?

42

Witryny moich zastosowań firmowych blog na WordPress 3.3.1 z tematu na podstawie Twenty Ten. W zeszłym tygodniu zaktualizowałem Apache i PHP na naszym serwerze produkcyjnym. Następnie pulpit nawigacyjny nie chciał działać. Gdy użytkownik się zaloguje, pojawi się pusty pulpit. Menu z linkami jest nadal obecne, ale żaden z nich nie działa, więc nie można tworzyć nowych postów itp. W źródle strony widzę następujący komunikat:

Błąd krytyczny : Dostęp do niezadeklarowanej właściwości statycznej: WP_Screen :: $ to w blogu / wp-admin / obejmuje / screen.php w linii 706

Nie wprowadzono żadnych zmian w konfiguracji WordPress i nie zainstalowano nowych wtyczek. Jak rozwiązać problem?

Dmitrij Lebiediew
źródło
3
Dlaczego nie zaktualizujesz do obecnej stabilnej wersji WordPress z obsługą nowszych wersji php?
bueltge

Odpowiedzi:

83

W WordPress 3.3.1 występuje błąd powodujący problem. Może to wpływać również na inne wersje.

Aby rozwiązać ten problem, możesz zaktualizować WordPress do bieżącej stabilnej wersji, a następnie przeprowadzić testy integracji. Lub możesz szybko naprawić błąd.

Aby naprawić błąd:

  1. Otwórz plik blog / wp-admin / obejmuje / screen.php w swoim ulubionym edytorze tekstu.
  2. W linii 706 znajdź następującą instrukcję PHP:<?php echo self::$this->_help_sidebar; ?>
  3. Zamień na oświadczenie: <?php echo $this->_help_sidebar; ?>
  4. Zapisz swoje zmiany.

Mam nadzieję, że to ci pomoże.

Dmitrij Lebiediew
źródło
Dzięki, właśnie mam ten sam problem i go naprawiłem. Co to jest błąd w powyższej linii? Ponieważ początkowo moja strona działa idealnie, dopóki nie zobaczę powyższego błędu.
Imran
1
@Imran Błąd jest nieprawidłowym składniowym odwołaniem do właściwości „_help_sidebar” instancji klasy WP_Screen. Wygląda na to, że interpretery PHP zanim niektóre wersje są łagodne w stosunku do tej instrukcji, ale po aktualizacji do nowej wersji po prostu zgłoś błąd.
Dmitrij Lebiediew
Wiem, że komentarze „dziękuję” są odradzane, ale wdrożenie zajęło kilka sekund i dosłownie zapisałem mojego bloga. Ten dziwny problem nawet nie pojawia się w moich dziennikach błędów.
1owk3y
1

Odpowiedź Dmitry'ego na zastąpienie złej instrukcji PHP wydaje mi się najlepsza:

Zastąpić <?php echo self::$this->_help_sidebar; ?>

Z <?php echo $this->_help_sidebar; ?>

wagiboy
źródło
Wprowadzanie zmian w podstawowych plikach nigdy nie jest wskazane, ponieważ stracisz zmiany w aktualizacjach, a także powstrzymasz się od komentowania w wątku odpowiedzi. Rozumiem, że nie masz jeszcze uprawnień do dodawania komentarzy, ale zachowaj wątki odpowiedzi wyłącznie dla odpowiedzi
Maruti Mohanty
2
To prawda, ale jeśli ten biały ekran śmierci po prostu uniemożliwia aktualizację do wersji, w której ten błąd został naprawiony (tj. Najnowszy :)), jest to najszybsze rozwiązanie. Twoje zmiany zostaną natychmiast zastąpione, więc niepożądany efekt uboczny zniknął.
Attila Fulop
0

masz trzy opcje

  • Obniż poziom php - prawdopodobnie go nie polubisz
  • Zaktualizuj WordPres - korzystasz z wersji 3.3.1? w każdym razie jest to czas aktualizacji
  • Napraw błąd w rdzeniu - nie jest tak zły, jak się wydaje, ponieważ kod „screen” kontroluje ekran pomocy i możesz nie potrzebować pomocy w obsłudze wordpressa.
Mark Kaplun
źródło
0

Mimo że nie wprowadziłeś żadnych zmian w konfiguracji ani nie dodałeś nowych wtyczek do WordPress, aktualizacja podstawowej wersji PHP może powodować konflikt z jedną z wtyczek, których już z powodzeniem używasz.

Ponieważ nie możesz dostać się do panelu administratora w celu wyłączenia wtyczek, spróbuj po prostu zmienić nazwę folderu / wp-content / plugins na coś takiego jak / wp-content / plugins-OLD, a następnie spróbuj ponownie uzyskać dostęp do administratora.

Jeśli uda Ci się wejść po wyłączeniu wtyczek, możesz je ponownie włączyć 1 na 1, aby sprawdzić, który z nich jest winowajcą, i pozostawić wyłączony, dopóki nie uaktualnisz rdzenia WordPress i samej wtyczki do najnowszych wersji które, mam nadzieję, nie mają tych problemów.

JacobN
źródło