Mes permaliens pour un type de message personnalisé sont définis sur /% custom_taxonomy% /% postname%/en utilisant le plug-in Permalink Type de message personnalisé pour définir les règles personnalisées de ce CPT.
Cela me donne site.com/cpt/term/sub-term/postname. Oui, le poste est dans le sous-terme.
Ce que je veux, c'est site.com/cpt/term/postname. Éliminez donc le sous-terme du permalien.
En regardant cette question , supprimez la catégorie enfant de l'URL , puis le code https: //core.trac.wordpress. org/browser/tags/3.9.1/src/wp-includes/link-template.php # L169 vous pouvez constater que les CPT n'atteignent pas le même filtre. Le CPT utilise get_post_permalink ici: https://core.trac.wordpress.org/browser/tags/3.9.1/src/wp-includes/link-template.php#L244
Cela ne me laisse que le filtre post_type_link.
Comment pourrais-je atteindre site.com/cpt/term/postname?
Voici ce que j'ai fini avec. J'ai encore besoin de nettoyage, mais ça fonctionne.
https://Gist.github.com/curtismchale/fa8d0570ce2c9b14880f31766c560872