web-dev-qa-db-fra.com

Quand utiliser/ne pas utiliser wp_get_post_terms contre get_the_terms?

Un utilisateur a écrit une note dans le codex indiquant que la seule différence était que get_the_terms utilisait des données en cache, et je sais déjà que wp_get_post_terms vous permettait de récupérer des données par slug, mais je me demande toujours quelle est la meilleure situation pour utiliser l'une ou l'autre.

3
Luis Rivera

Un utilisateur a écrit une note dans le codex indiquant que la seule différence était que get_the_terms utilisait des données en cache.

Oui, get_the_terms s'appuie sur le cache d'objets. Cela donne un coup de pouce de mise à l'échelle et un coup de pouce de vitesse. Si le cache d'objets est activé, cette augmentation de vitesse augmente considérablement.

et je sais déjà que wp_get_post_terms vous permet de récupérer des données par slug

Je pense que vous voulez dire que cela vous permet de retourner un tableau d'un champ spécifique. Un terme slug n'est pas un paramètre pour l'une ou l'autre fonction

Ce n'est rien qui ne puisse être accompli via wp_list_pluck car les objets-termes contiennent le slug

mais je me demande toujours quelle est la meilleure situation pour utiliser l'un par rapport à l'autre

Il suffit d'utiliser get_the_terms et de prétendre que les fonctions d'assistance de niveau supérieur n'existent pas, elles représentent plus de problèmes qu'elles n'en valent la peine

Il tombe dans la même catégorie de fonctions problématiques que get_children ou wp_get_recent_posts, qui englobe des fonctions de niveau inférieur qui font des choses similaires, mais essayez de faire un peu de travail pour vous. Utile pour les débutants, jusqu'à ce que vous réalisiez qu'ils viennent avec des chaînes qui ne sont pas géniales ou qui posent des problèmes. De plus, pourquoi apprendre toutes ces fonctions alors que vous ne pouvez que descendre d’une étape à l’autre, apprendre quelques-unes de leurs fonctions et gagner du temps et simplifier vos tâches.

La même chose est vraie des taxonomies. Il n'est pas nécessaire d'utiliser les API de catégories et de balises, ni les API de taxonomie qui font référence à des publications. Utilisez simplement les versions génériques et spécifiez le nom de la taxonomie, par exemple.

$terms = get_the_terms( $post_id, 'cat' );

Il est maintenant tentant de redescendre à wp_get_object_terms, mais ceci n'est pas mis en cache et vous verrez donc des problèmes de performances et de dimensionnement.

8
Tom J Nowell