web-dev-qa-db-fra.com

Quels sont les critères pour les fonctions enfichables?

Pourquoi certaines fonctions peuvent-elles être connectées (remplaçables) dans WordPress core et d'autres pas?

Mais théoriquement, y aurait-il des implications en matière de sécurité ou d'autres préoccupations pour les avoir tous enfichables - ou est-ce simplement si moins de code enfichable devient incompatible avec les mises à jour principales?

2
majick

Les fonctions enfichables sont moins élastiques que les filtres/actions.

Vous ne pouvez avoir qu'une seule fonction enfichable "active" - donc un seul plugin peut remplacer la fonction principale. Et vous n'avez pas beaucoup de contrôle sur le plugin qu'il sera (WP utilisera la fonction pluggable qui est définie en premier).

Il ne sera donc pas très utile de remplacer toutes les actions par des fonctions enfichables.

D'un autre côté, il existe certains cas où l'utilisation de fonctions enfichables peut avoir un certain sens. wp_mail est un excellent exemple, je suppose. Si vous souhaitez modifier la façon dont les e-mails sont envoyés, vous le pouvez. Mais vous ne voulez toujours qu'une seule de ces fonctions (sinon, si vous installez deux plugins qui la changent, vous pouvez vous terminer avec plusieurs e-mails envoyés pour chaque appel wp_email).

Il est donc judicieux d'utiliser pluggable, chaque fois qu'il est essentiel d'effectuer une action une seule fois, mais vous souhaitez toujours pouvoir modifier exactement l'action qui est effectuée.

2