Aujourd'hui, je devais changer les arguments d'une taxonomie personnalisée déjà enregistrée par un plugin tiers . Plus précisément, je voulais définir l' show_admin_column
argument true
et modifier le rewrite
slug afin que ce ne soit pas seulement le slug de taxonomie. Dans ce cas, il s'agissait d'un type de publication "Personnes" avec une taxonomie personnalisée "Catégorie de personnes".
J'ai été surpris que cela n'ait pas été demandé auparavant, alors voici une question et une réponse.
Réponses:
register_taxonomy()
est l'outil pour le travail. Du Codex:Une option serait de les copier
register_taxonomy()
$args
et de les modifier. Cependant, cela signifierait que toute modification future duregister_taxonomy()
code d' origine serait écrasée.Par conséquent, au moins dans ce cas, il est préférable d'obtenir les arguments d'origine, de modifier ceux que je veux changer, puis de réenregistrer la taxonomie. L'inspiration pour cette solution va à @Otto dans cette réponse à une question similaire sur les types de publication personnalisés .
En utilisant le
people
type de message personnalisé et lapeople_category
taxonomie de l'exemple, cela le fera:Notez ci-dessus que j'ai transtypé le troisième
register_taxonomy()
argument en type de tableau attendu. Ce n'est pas strictement nécessaire car lesregister_taxonomy()
utilisationswp_parse_args()
qui peuvent gérer unobject
ouarray
. Cela dit,register_taxonomy()
les documents$args
sont censés être soumisarray
conformément au Codex, donc cela me semble juste.la source
'people_category'
) que la taxonomie d'origine afin de l'écraser.capabilities
paramètre est stocké en internecap
afin qu'il ne soit pas transmis à la nouvelle taxonomie enregistrée. Voir ma réponse à une question similaire ici