Structure de permalien pour plusieurs archives de type de publication par taxonomie

8

Récemment, j'ai travaillé sur un projet WordPress avancé et je suis coincé avec la modification de la structure du permalien pour les types de publication personnalisés.

J'ai créé 3 types de messages, disons: type1, type2, type3 et un test de taxonomie enregistré pour chacun d'eux. J'ai 3 termes dans la taxonomie personnalisée cat1, cat2, cat3

Voici ce que je veux réaliser:

au lieu d'accéder à tous les messages de chat par

siteurl / test / cat1

Je veux accéder à chaque archive de type post par chat de taxonomie comme:

siteurl / type1 / cat1

Alex2452
la source
quelle est la structure de l'url?
Amit
1
Je pense que vous confondez avec le type de message personnalisé et les taxonomies ... mais si vous fournissez les vrais noms que vous utilisez m'aidera à mieux le comprendre. Par exemple, type1 = véhicule, cat1 = type et term1 = voiture.
chifliiiii
1
Je suis d'accord avec @chifliiiii que cela peut nous aider si vous clarifiez exactement comment / ce que vous essayez d'organiser. Les catégories peuvent également avoir des sous-catégories qui peuvent être plus faciles à former une hiérarchie structurée.
Chris
Ce message pourrait avoir plus de détails et de direction pour vous: wordpress.stackexchange.com/questions/49141/…
Alex V.

Réponses:

1

Voici une partie du code d'un de mes projets pour configurer une structure similaire pour les permaliens (même slug de base pour le type de message et les archives de taxonomie), veuillez noter les valeurs des paramètres 'has_archive' et 'rewrite' des deux messages type et taxonomie:

add_action( 'init', 'register_my_post_types' );
function register_my_post_types() {

  register_post_type( 'movie',
    array(
        ....

        'has_archive' => 'movies',
        'rewrite' => array(
            'slug' => 'movies/%mv_category%',
            'with_front' => false
        ),
        'taxonomies' => array(
            'mv_category',
        ),
    )
  );

  register_taxonomy(
    'mv_category',
    array(
        'movie'
    ),
    array(
        ...
        'hierarchical' => true,
        'rewrite' => array(
            'slug' => 'movies',
            'with_front' => false,
            'hierarchical' => false
        )
    )
  );
) // end of create_my_post_types function


add_filter('post_type_link', 'filter_post_type_link', 10, 2);
function filter_post_type_link($link, $post)
{
    if ($post->post_type != 'movie')
        return $link;

    if ($cats = get_the_terms($post->ID, 'mv_category'))
        $link = str_replace('%mv_category%', array_pop($cats)->slug, $link);

    return $link;
}

Ensuite, vous pouvez accéder à la catégorie «Documentaire» de type de publication de film avec cette URL:

site.com/movies/documentary/

et «Film A» de la catégorie «Documentaire» sera:

site.com/movies/documentary/movie-a/

REMARQUE: il est important d'enregistrer la taxonomie après le type de publication, car les règles de réécriture de permalien sont générées dans WordPress.

Parham
la source
0

Sans avoir de termes plus précis pour m'aider à comprendre ce que vous essayez d'organiser, je ne suis pas sûr d'être sur la bonne voie, mais ce plugin vous aide-t-il à accomplir ce que vous essayez de faire? http://wordpress.org/extend/plugins/cpt-onomies/

Cela confond les titres de poste et les taxonomies de type personnalisé de manière étrange (et peut-être utile?) ...

mltsy
la source