WordPress : Pourquoi l’ajout d’un fichier modèle à un thème enfant provoquerait-il une erreur dans template-loader.php ?

Publié par Jean-Michel le

Selon les meilleures pratiques de WordPress, j’ai créé un thème enfant pour un thème existant que j’ai. Tout fonctionne bien jusqu’à ce que j’essaie d’ajouter un fichier de modèle qui suit les conventions de hiérarchie des modèles de WP. Par exemple, si j’ajoute category.php ou archive.php, j’obtiens un écran blanc de la mort, et voici l’erreur que j’obtiens dans Apache :

    [:error] [pid 2919] [client 98.24.106.38:64974] PHP Warning:  include():
Failed opening '/home/www-dev/beokinawa/wp-content/themes/x-child/index.php' for
 inclusion (include_path='.:/usr/share/php') in /home/www-dev/beokinawa/wp-
includes/template-loader.php on line 74, referer:
http://dev.bluepresley.com/beokinawa/wp-admin/edit-tags.php?taxonomy=category

Chaque fois que j’essaie d’afficher une catégorie après avoir téléchargé l’un de ces fichiers, le système veut charger l’URL de l’écran d’édition de catégorie, semble-t-il. Qu’est-ce qui pourrait causer ça ? Vous pouvez également voir à partir de l’erreur qu’il essaie de trouver index.php, le dernier dans la hiérarchie des modèles. Si category.php ou archive.php sont présents, il n’y aurait aucune raison pour qu’il recherche ce fichier, n’est-ce pas ?

Que le problème soit les autorisations est intéressant. Voici une ventilation des autorisations.

  • les fichiers sont chown’utilisateur: www-root
  • par documentation wordpress, les fichiers sont 664 (même changé brièvement le répertoire et les fichiers en 777, mais cela n’a pas fonctionné non plus)

Il semble que je ne puisse pas ajouter de fichiers supplémentaires à partir du schéma de hiérarchie des modèles WordPress. Mais, éditer des parties de modèle est bien. Le thème parent est fourni avec wp-header.php, wp-footer.php, etc., et je peux les ajouter et les remplacements se produisent correctement.

Solution n°1 trouvée

Votre idée initiale est correcte, WordPress ne devrait pas chercher index.phps’il trouve category.phpune archive de catégorie. Cependant, cela peut changer si vous n’avez pas défini correctement l’autorisation et la propriété du fichier, ou si le cache du système de fichiers dérange avec la file_exists()vérification.

Suivez ces étapes:

  1. Assurez-vous que les fichiers de votre thème enfant sont lisibles par l’utilisateur du serveur Web. Vérifiez à la fois l’autorisation et la propriété du fichier.

  2. Vérifiez si le thème enfant est correctement couplé au thème parent et il peut obtenir des modèles à partir du thème parent si un modèle spécifique est absent du thème enfant.

  3. En cours wp-config.phpd’utilisation de clearstatcache();la fonction (avant require_once(ABSPATH . 'wp-settings.php');) pour vider le cache du système de fichiers.

    Si vous ajoutiez et supprimiez ces fichiers lors des tests et de la mise en cache du système de fichiers, clearstatcache();cela vous aidera à effacer le cache du système de fichiers qui pourrait perturber le cœur de WordPress. Une fois terminé, supprimez clearstatcache();l’appel.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *