web-dev-qa-db-fra.com

Comment inclure les termes parents dans l'URL de taxonomie hiérarchique?

Pour toutes les taxonomies personnalisées, les URL ressemblent à:/base/slug/.

J'ai besoin d'une solution pour que mes taxonomies hiérarchiques aient:/base/parentslug/childslug/.

Tout le monde sait comment rediriger et/ou avoir les mêmes fonctionnalités que les catégories?

2
Traveler

Juste pour clarifier, ce qui a été souligné par Parst avec un exemple de travail d'un code d'enregistrement de taxonomie personnalisé:

$labels = array(
        'name'              => _x( 'Issue numbers', 'taxonomy general name', 'sascha_setup_post_type' ),
        'singular_name'     => _x( 'Issue number', 'taxonomy singular name', 'sascha_setup_post_type' ),
        'search_items'      => __( 'Search issues', 'sascha_setup_post_type' ),
        'all_items'         => __( 'All issue numbers', 'sascha_setup_post_type' ),
        'parent_item'       => __( 'Year of publication', 'sascha_setup_post_type' ),
        'parent_item_colon' => __( 'Year of publication:', 'sascha_setup_post_type' ),
        'edit_item'         => __( 'Edit issue number', 'sascha_setup_post_type' ),
        'update_item'       => __( 'Update issue number', 'sascha_setup_post_type' ),
        'add_new_item'      => __( 'Add new issue number', 'sascha_setup_post_type' ),
        'new_item_name'     => __( 'New issue number', 'sascha_setup_post_type' ),
        'menu_name'         => __( 'Issue numbers', 'sascha_setup_post_type' ),
    );

    $args = array(
        'hierarchical'      => true,
        'labels'            => $labels,
        'show_ui'           => true,
        'show_admin_column' => true,
        'query_var'         => true,
        'rewrite'           => array( 'slug' => 'issues', 'hierarchical' => true ),
    );

    register_taxonomy( 'issue_number', array( 'post', 'issue' ), $args );

Le résultat donne une URL telle que www.votredomaine.com/issues/2016/04/ - exactement comme vous le souhaitiez. Et! N'oubliez pas de vider vos règles de permalien après avoir implémenté cela, pour ne pas obtenir 404 pour vos URL de taxonomie personnalisées. Le moyen le plus simple - allez dans Admin/Permalinks et cliquez simplement sur le bouton "Enregistrer", sans rien changer.

2

Selon register_taxonomy() documentation, il existe un paramètre rewrite/hierarchical qui le contrôle. La valeur par défaut est false, ce qui explique probablement pourquoi vous ne le voyez pas se comporter comme les taxonomies autochtones.

2
Rarst