Comment résoudre le problème de tableau de bord vide dans WordPress?

42

Un site de ma société utilise un blog sur WordPress 3.3.1 avec un thème basé sur Twenty Ten. La semaine dernière, j'ai mis à niveau Apache et PHP sur notre serveur de production. Ensuite, le tableau de bord a refusé de fonctionner. Lorsqu'un utilisateur se connecte, un tableau de bord vide apparaît. Un menu avec des liens est toujours présent, mais aucun des liens ne fonctionne, donc on ne peut pas créer de nouveaux articles, etc. Dans la source de la page, je vois le message suivant:

Erreur fatale : accès à la propriété statique non déclarée: WP_Screen :: $ this dans blog / wp-admin / includes / screen.php à la ligne 706

Aucune modification n'a été apportée à la configuration de WordPress et aucun nouveau plugin n'a été installé. Comment résoudre le problème?

Dmitry Lebedev
la source
3
Pourquoi ne pas mettre à jour la version stable actuelle de WordPress avec la prise en charge des nouvelles versions php?
bueltge

Réponses:

83

Il y a un bogue dans WordPress 3.3.1 qui cause le problème. Cela peut également affecter d'autres versions.

Pour résoudre ce problème, vous pouvez mettre à jour WordPress vers la version stable actuelle et effectuer des tests d'intégration par la suite. Ou vous pouvez faire une correction de bogue rapide.

Pour corriger le bug:

  1. Ouvrez le fichier blog / wp-admin / includes / screen.php dans votre éditeur de texte préféré.
  2. Sur la ligne 706, recherchez l'instruction PHP suivante:<?php echo self::$this->_help_sidebar; ?>
  3. Remplacez-le par l'énoncé suivant: <?php echo $this->_help_sidebar; ?>
  4. Enregistrez vos modifications.

J'espère que ça vous aide.

Dmitry Lebedev
la source
Merci, j'ai juste le même problème et corrigé. Quel est le bug dans la ligne ci-dessus? Parce qu'initialement, mon site fonctionne parfaitement jusqu'à ce que je vois l'erreur ci-dessus.
Imran
1
@Imran Le bogue est une référence syntaxiquement incorrecte à la propriété '_help_sidebar' d'une instance de la classe WP_Screen. Il semble que les interpréteurs PHP antérieurs à une version soient indulgents, mais après la mise à niveau vers une version plus récente, signalez simplement l'erreur.
Dmitry Lebedev
Je sais que les commentaires de remerciement sont découragés, mais le déploiement a pris quelques secondes et a littéralement sauvé mon blog. Ce problème étrange ne semble même pas apparaître dans mes journaux d'erreur.
1owk3y
1

La réponse de Dmitry de remplacer la mauvaise déclaration PHP me semble la meilleure:

Remplacer <?php echo self::$this->_help_sidebar; ?>

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

Wagiboy
la source
Il n’est jamais recommandé d’apporter des modifications aux fichiers de base, car vous allez perdre les modifications apportées aux mises à jour et vous empêcher de commenter dans le fil de réponse. Je comprends que vous n’avez pas encore le privilège d’ajouter des commentaires, mais laissez les fils de réponse. pour des réponses exclusives
Maruti Mohanty
2
C'est vrai, mais si cet écran blanc de la mort vous empêche simplement de passer à la version où ce bogue a été corrigé (c'est-à-dire le dernier :)), c'est la solution la plus rapide. Vos modifications seront immédiatement écrasées et l’effet secondaire indésirable aura disparu.
Attila Fulop
0

vous avez trois options

  • Rétrograder le php - vous n'allez probablement pas l'aimer
  • Améliorez wordpres - vous utilisez la version 3.3.1? c'est le temps de mise à niveau dans tous les cas
  • Corrigez l'erreur dans le coeur - Pas aussi grave que cela puisse paraître, car le code "screen" contrôle l'écran d'aide et vous n'aurez peut-être plus besoin d'aide pour utiliser wordpress.
Mark Kaplun
la source
0

Même si vous n'avez apporté aucune modification à la configuration ni ajouté de nouveaux plugins à WordPress, la mise à niveau de la version sous-jacente de PHP pourrait être en conflit avec l'un des plugins que vous utilisiez déjà avec succès.

Étant donné que vous ne pouvez pas désactiver les plug-ins dans votre tableau de bord administrateur, essayez simplement de renommer votre dossier / wp-content / plugins en un nom du type / wp-content / plugins-OLD , puis essayez à nouveau d'accéder à l'administrateur.

Si vous pouvez entrer avec succès après avoir désactivé vos plugins, vous pouvez les réactiver un par un pour voir lequel est probablement le coupable et le laisser désactivé jusqu'à la mise à niveau du noyau de WordPress et du plugin lui-même vers les dernières versions. qui espérons ne pas avoir ces problèmes.

JacobN
la source