web-dev-qa-db-fra.com

Le contenu de plus de 10 000 caractères ne s'affichera pas avec the_content ()

Un de mes amis vient de remarquer que leur site ne présentait pas de pages contenant beaucoup de contenu. Pour une raison quelconque, ils sont simplement vides et s'il supprime du contenu de la page, il s'affichera à nouveau. La marque des 10 000 caractères semble être le seuil - tout ce qui se trouve au-dessus et il est vide.

J'ai joué avec ses modèles et j'ai remarqué que le contenu serait affiché si j'utilisais echo get_the_content() plutôt que the_content(), mais il perd ensuite le formatage automatique.

Quelqu'un at-il déjà rencontré ce problème? J'ai cherché sur ce site dans Google, mais je n'ai rien trouvé. Merci d'avance pour toute lumière que vous pouvez nous éclairer!

5
Chris Schmitz

J'ai rencontré ce problème il y a environ un an et j'ai trouvé un correctif ici .

  • Ouvrez PHP.INI dans un éditeur de texte de votre choix (normalement, vous pouvez trouver php.ini dans votre répertoire d'installation php)
  • Définissez la limite de récursivité sur 200x normale, c'est-à-dire, définissez: pcre.recursion_limit=20000000
  • Définissez la limite de retour arrière sur 100x normal, c'est-à-dire, définissez: pcre.backtrack_limit=10000000
  • Arrêtez et démarrez le service Apache (ou IIS)

En guise d'avertissement, si vous appuyez trop loin et que votre serveur est sous-alimenté, vous risquez de tomber en panne PHP car il consomme la totalité de la pile. Votre hôte ne sera peut-être pas trop content de cela.

Si vous n'avez pas accès à votre php.ini, vous pouvez définir ces variables dans wp-config.php. Quelque part avant la require_once(ABSPATH . 'wp-settings.php');, peut-être dans la zone de débogage (jusqu’à vous), ajoutez ces deux lignes:

@ini_set('pcre.backtrack_limit', 10000000);

@ini_set('pcre.recursion_limit', 20000000);

8
SickHippie