web-dev-qa-db-fra.com

À quelle fréquence avez-vous besoin de register_post_type?

En supposant que vous écriviez un plugin et que vous vous connectiez à activation/désactivation à register_post_type est ça suffit? Ou avez-vous besoin de le faire chaque init ?

Je recherche des améliorations de performances et je souhaite réduire les appels inutiles.

GenerateWP utilise add_action( 'init', 'custom_post_type', 0 ); afin que ce soit aussi tôt que je pourrais vouloir l'enregistrer.

RÉSULTATS

  • @ s-ha-dum :

    register_post_type doit être appelé à chaque chargement de page

    Les données post sont elles-mêmes conservées dans la base de données, mais l'enregistrement indique au PHP ce qu'il faut en faire.

  • @ pieter-goosen :

    Les types incorporés sont en réalité enregistrés deux fois à chaque chargement de page (en raison de la localisation disponible uniquement sur init)

2
jgraup

register_post_type doit être appelé à chaque chargement de page - init semble être correct et est le crochet utilisé dans l'exemple Codex . Les données de publication elles-mêmes sont conservées dans la base de données, mais l'enregistrement indique au PHP ce qu'il faut en faire. La plupart des informations de type post - le $labels, le $args-- ne sont pas conservées dans la base de données à ma connaissance (bien que je conviendrais qu'il puisse y avoir un argument ), donc sans ce code d’inscription, Core ne connaît pas vraiment le type de message.

Vous pouvez facilement le tester vous-même en enregistrant le type puis en commentant le code.

3
s_ha_dum

Tous les types de publication et les taxonomies sont enregistrés sur chaque chargement de page, qu'ils soient intégrés ou non. Vous ne pouvez vraiment rien y faire.

Les types incorporés sont en réalité enregistrés deux fois à chaque chargement de page ( en raison de la localisation qui n'est disponible que sur init). Il est donc inutile d'essayer d'optimiser les types personnalisés. .

Comme les types de publication et les taxonomies ne sont pas stockés dans la base de données, vous enregistrez déjà sur les appels à la base de données, même si vous salissez l'espace global avec leurs données. Je ne sais pas vraiment ce qui est préférable ici, ajouter des appels de base de données supplémentaires à un nombre déjà insensé d'appels de base de données par chargement de page ou ajouter encore plus de courrier indésirable à l'espace global.

En fait, Wordpress n’a jamais été conçu pour s’intégrer au grand public lorsqu’il a commencé, de nombreuses fonctionnalités n’ont donc jamais été bien pensées. Une partie du gâchis de la version précédente ne peut être annulée sans casser des milliers de sites en raison de leur politique de compatibilité avec les versions antérieures.

Si vous avez vraiment besoin d'optimiser votre site, commencez par des tâches évidentes telles que les requêtes, la minimisation des scripts et des styles, la mise en cache de grandes quantités de données, etc. En ce qui concerne les fonctions principales, tout ce que vous pouvez faire est simplement de soumettre des propositions pour améliorer les performances de fonctionnalités spécifiques. et espérons que vos propositions seront approuvées et incluses dans les prochaines versions

2
Pieter Goosen