web-dev-qa-db-fra.com

Est-il possible de changer un slug de terme avant d'être enregistré dans la base de données?

Nous sommes dans une situation où nous devons pouvoir procéder à une catégorisation comme celle-ci:

Root Category
  |-- Child Category
  |-- **Non-Unique Category**
Next Category
  |-- Next Level
        |-- **Non-Unique Category**
Another Category
  |-- **Non-Unique Category**

Le problème que nous avons rencontré lors de la création de catégories est que les slugs sont uniques. Dans notre cas d'utilisation, le slug n'est pas utilisé dans une URL. Il pourrait donc s'agir d'un GUID pour tout le monde. Selon WordPress, il doit simplement être unique.

Si le slug n'est pas unique, WordPress génère une erreur indiquant que le même nom existe déjà. Comment pouvons-nous utiliser un filtre/une action pour changer la valeur slug du terme avant qu'il ne soit validé dans la base de données?

Bonus : Cela peut-il être fait avec des taxonomies personnalisées ainsi que des fonctions intégrées?

1
mrClean

Vous pouvez utiliser le filtre pre_insert_term pour le faire.

https://developer.wordpress.org/reference/hooks/pre_insert_term/

1
LumberHack