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 plusterm_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 :
- WP 4.3 a fini le « term splitting », ce qui veut dire que
term_id
est aussi « unique » queterm_taxonomy_id
. - 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_id
s en term_id
s, 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
.