Je pense que c'est rapide:
J'ai:
Si je tape example.com/food?fruits=Apple,Cherry, je reçois tous les messages dans Fruits avec les termes Apple et Cherry, c'est génial!
Mais je voudrais taper exemple.com/food/fruits/Apple,Cherry ou exemple.com/food/Apple,Cherry pour obtenir le même résultat.
J'ai essayé différents permaliens et des plugins de réécriture liés aux publications personnalisées, mais rien n'y faisait.
Je vous remercie,
David
Vous devez construire la structure de liens en utilisant les filtres post_link
et post_type_link
:
add_filter('post_link', 'territorio_permalink', 10, 3);
add_filter('post_type_link', 'territorio_permalink', 10, 3);
function territorio_permalink($permalink, $post_id, $leavename) {
if (strpos($permalink, '%territorio%') === FALSE) return $permalink;
// Get post
$post = get_post($post_id);
if (!$post) return $permalink;
// Get taxonomy terms
$terms = wp_get_object_terms($post->ID, 'territorio','orderby=term_order');
if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0]))
$taxonomy_slug = $terms[0]->slug.'/'.$terms[1]->slug; //build here
else $taxonomy_slug = 'not-yet';
return str_replace('%territorio%', $taxonomy_slug, $permalink);
}
Où hotel
est le type de message et territorio
est une taxonomie hiérarchique.
En post-création de type utiliser:
'rewrite' => array( 'slug' => 'anything-you-want/%territorio%','with_front' => false),
Note: si vous voulez des liens plus profonds, votre construction devrait aller plus loin:
$taxonomy_slug = $terms[0]->slug.'/'.$terms[1]->slug.'/'.$terms[2]->slug;