Contenu principal
Photo originale de Nicolas Janik (CC BY 2.0)

Taxonomy Thumbnail se prépare pour WordPress 4.4, vous devriez également

La version 1.2 de mon extension permettant d’ajouter une « image à la une » aux termes de taxonomie vient de sortir, elle contient d’importants changements en préparation de l’arrivée de WordPress 4.4.

TLDR : l’extension va utiliser la nouvelle API term metas de WP 4.4, il faudra donc utiliser term_id, et non plus term_taxonomy_id dans votre code.

Utiliser les term metas de WordPress 4.4

WordPress 4.4 va enfin introduire les term metas, avec une table dédiée dans la base de données et de nouvelles fonctions. Naturellement, Taxonomy Thumbnail va utiliser ce nouveau système, mais cela implique un gros changement dans l’utilisation de l’extension.

En effet, WP 4.4 utilise term_id comme référence pour ses metas, alors que Taxonomy Thumbnail utilisait term_taxonomy_id jusque là.
Jusqu’ici, tout développeur devait utiliser le couple term_id + taxonomy ou simplement term_taxonomy_id. Pour Taxonomy Thumbnail j’ai donc opté pour term_taxonomy_id, qui est moins contraignant puisqu’il n’y a pas besoin de préciser la taxonomie.

Pour WP 4.4, deux choses :

  1. WP 4.3 a fini le « term splitting », ce qui veut dire que term_id est aussi « unique » que term_taxonomy_id.
  2. Toutes les fonctions de WordPress tournant autour des termes de taxonomie utilisent term_id, le rendant de fait plus « populaire ».

Il est donc normal que WordPress 4.4 se concentre plutôt sur term_id. Cela veut dire également qu’à terme, term_taxonomy_id disparaitra. La transition commence d’ailleurs avec WP 4.4, puisque par exemple le paramètre $taxonomy devient facultatif dans la fonction get_term() (qui utilise term_id).

De plus, l’extension Meta for Taxonomies ne sera pas compatible avec WordPress 4.4 : au programme, function name clash et non-matching function signatures (ce sont les deux premiers pas avant la fin du monde).

La seule solution viable était donc d’utiliser term_id dans l’extension.

Migration des données

Point positif : la migration des données est automatique :)
Que vous utilisiez l’extension Meta for Taxonomies ou pas, Taxonomy Thumbnail migrera les données automatiquement lors de la mise à jour vers WordPress 4.4 : l’extension changera les term_taxonomy_ids en term_ids, les ajoutera dans la nouvelle table, et enfin supprimera les anciennes données.

Préparer la transition

Elle est très simple au final. Voici un exemple pour utiliser le bon ID :

12

$term_id = sftth_is_wp44() ? $term->term_id : $term->term_taxonomy_id;
the_term_thumbnail( $term_id, 'thumbnail' );

sftth_is_wp44() est une fonction que j’utilise dans Taxonomy Thumbnail pour déterminer si les nouvelles metas de WP 4.4 doivent être utilisées, autant la réutiliser :)

Les bonus de la version 1.2

  • Lorsqu’une image est supprimée ou mise dans la corbeille, les metas correspondantes sont également supprimées. C’est une fonctionnalité qui manquait en effet.
  • Probablement inutiles maintenant, mais comme j’étais en train de créer le process de migration j’en ai profité pour créer deux fonctions supplémentaires qui permettent de migrer les anciennes données de Meta for Taxonomies vers l’option et vice-versa. Elles sont dans inc/migrate.php.