Le WordPress d'aujourd'hui, décodé pour les développeurs

FSE

PHP 8.4 et les templates d’archive : un avertissement de dépréciation discret

Un cas précis de dépréciation PHP 8.4 repéré dans le code qui gère le fallback d'archive d'un thème hybride ancien, invisible tant que le mode debug n'est pas activé.

Par Clément Hadrot • 21 juin 2026 • 4 min de lecture • Aucun commentaire
PHP 8.4 et les templates d'archive : un avertissement de dépréciation discret

« Deprecated: Creation of dynamic property » : ce message n’apparaît nulle part sur le site en production, puisque l’affichage des erreurs y est désactivé par défaut. Il ne remonte que lorsque WP_DEBUG et WP_DEBUG_LOG sont activés sur un environnement de test, ce qui explique pourquoi il est passé inaperçu pendant plusieurs semaines après la montée de version vers PHP 8.4 sur ce thème hybride ancien, initialement conçu pour PHP 7.4.

Où se situe précisément l’avertissement

Le fichier functions.php du thème contient une fonction héritée qui gère le fallback d’archive pour les types de contenu personnalisés dépourvus de gabarit dédié. Cette fonction instancie une classe interne au thème et lui assigne une propriété à la volée, sans que cette propriété n’ait été déclarée dans la définition de la classe.

class Fallback_Archive {
    public $type_contenu;
}

function initialiser_fallback( $type ) {
    $fallback = new Fallback_Archive();
    $fallback->type_contenu   = $type;
    $fallback->titre_affiche  = ucfirst( $type ); // propriété non déclarée
    return $fallback;
}

La ligne $fallback->titre_affiche crée une propriété dynamique, un usage toléré silencieusement jusqu’à PHP 8.3, mais officiellement déprécié depuis PHP 8.4 selon la documentation du langage. L’avertissement n’interrompt rien pour l’instant : il prévient d’un comportement qui deviendra une erreur dans une version majeure future de PHP.

Pourquoi cet avertissement mérite d’être traité maintenant

L'essentiel à retenir : Un avertissement invisible en production ; Une propriété dynamique non déclarée ; Un correctif ciblé sans réécrire tout le fichier

Ignorer une dépréciation aujourd’hui revient à reporter un correctif obligatoire vers un moment où l’hébergeur, lui, aura basculé l’ensemble de son parc vers une version de PHP qui transforme cet avertissement en erreur fatale bloquante. Sur un thème ancien, dont l’auteur d’origine n’est plus disponible, mieux vaut corriger dès la détection plutôt que d’accumuler ce genre de dette silencieuse.

Le correctif ciblé

Deux solutions s’offrent pour résoudre cette dépréciation précise, sans réécrire l’ensemble du fichier hérité :

// Solution 1 : déclarer explicitement la propriété manquante
class Fallback_Archive {
    public $type_contenu;
    public $titre_affiche;
}

// Solution 2 : autoriser explicitement les propriétés dynamiques
#[AllowDynamicProperties]
class Fallback_Archive {
    public $type_contenu;
}

La première solution reste la plus propre à long terme, puisqu’elle documente clairement la structure attendue de la classe. La seconde convient davantage lorsque le thème hérité manipule ce type de propriété dynamique à de multiples endroits, et qu’une déclaration exhaustive de chacune prendrait un temps disproportionné par rapport au bénéfice obtenu.

Vérifier qu’aucun autre cas similaire ne subsiste

Une recherche ciblée dans l’ensemble du thème permet de repérer d’autres occurrences du même schéma, avant qu’elles ne remontent une par une au fil des mois suivants :

grep -rn "->[a-z_]* =" wp-content/themes/theme-hybride-ancien/functions.php | grep -v "declared"

Ce qui n’est pas couvert ici

La checklist générale de migration vers PHP 8.4, avec l’ensemble des changements de comportement à vérifier sur un thème ou une extension, dépasse le cadre de cet article : elle a déjà été traitée ailleurs, de façon exhaustive. Ce cas précis se concentre uniquement sur la dépréciation des propriétés dynamiques, rencontrée dans le fallback d’archive de ce thème particulier.

Une dépréciation qui n’affiche rien en production reste, pour cette raison même, la plus dangereuse à long terme : elle attend simplement la version de PHP qui la transformera en incident.

En résumé

Le passage à PHP 8.4 a fait remonter un avertissement de dépréciation précis, lié à une propriété dynamique non déclarée dans le fallback d’archive d’un thème hybride ancien. Le correctif tient en quelques lignes, mais encore faut-il activer le mode debug sur un environnement de test pour le voir apparaître avant qu’il ne devienne, dans une future version de PHP, une erreur fatale bien plus coûteuse à traiter dans l’urgence.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi