C'est peut-être une question étrange et peut-être pas de réponses, mais je vais essayer.
Ce que je voudrais:
Les principaux problèmes ici, je suppose, sont 2:
C'est possible? Je pense à plusieurs choses (reste api, add_rewrite_rule/tag, etc.) mais je ne sais pas si ce sont des moyens bons/viables ..
Donc, une première solution peut utiliser add_rewrite_rules()
. Une première logique brute devrait être quelque chose comme:
1- Obtenez les slugs à terme dont vous avez besoin, sauvegardez dans une var, disons $terms_string
; $ terms_string devrait être une liste de slugs séparés par des tubes, convenant à l'expression rationnelle, comme 'type1 | type2' etc. contenant uniquement des valeurs valides (autorisées). Prononcez get_terms () pour récupérer toutes les limaces.
2- ajoutez une règle de réécriture personnalisée, semblable à ceci:
function add_rewrite_rules() {
add_rewrite_rule(
'^products/(' . $terms_string . ')/?$', //matches things like /products/type1
'index.php?product_category=$matches[1]', //the real query that will be executed upon matching requests
'top'
);
}
add_action( 'init', 'add_rewrite_rules');
Ça marche. Il montrera correctement une archive de taxonomie. Dans le monde réel, la construction d'un ensemble de règles cohérent impliquera en réalité beaucoup plus, mais c'est la voie. Trop de code à coller ici, mais je viens de créer un ensemble complexe de règles ressemblant à une API, incluant également la gestion de la langue avec polylang. Donc, si quelqu'un a les mêmes tâches, réécrivez les règles.