web-dev-qa-db-fra.com

Structure de lien permanent pour les archives de type poste multiple par taxonomie

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

J'ai créé 3 types de post, disons: type1, type2, type3 et une taxonomie test 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 poste par taxonomie comme:

siteurl/type1/cat1

8
Abed

Voici une partie du code de l'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). Notez les valeurs des paramètres 'has_archive' et 'rewrite' de la publication. 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 'Documentary' du type d'article Movie 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 permalink de l’ordre sont générées dans WordPress.

1
Parham

Sans avoir des termes plus spécifiques pour m'aider à comprendre ce que vous essayez réellement 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 en quelque sorte (et peut-être utile?) Titres de poste et taxonomies de type personnalisé ...

0
mltsy