Struttura Permalink per archivi di più tipi di posta per tassonomia


8

Recentemente ho lavorato su un progetto WordPress avanzato e sono bloccato con la modifica della struttura del permalink per i tipi di post personalizzati.

Ho creato 3 tipi di post, diciamo: type1, type2, type3 e un test di tassonomia registrato per tutti loro. Ho 3 termini nella tassonomia personalizzata cat1, cat2, cat3

Ecco cosa voglio ottenere:

invece di accedere a tutti i post di cat di

SITEURL / test / cat1

Voglio accedere ad ogni archivio di tipo post per gatto di tassonomia come:

SITEURL / Type1 / cat1


qual è la struttura dell'URL?
Amit

1
Penso che tu sia confuso con il tipo di post personalizzato e le tassonomie ... ma se fornisci i nomi reali che stai usando mi aiuteranno a capirlo meglio. Ad esempio è type1 = veicolo, cat1 = tipo e term1 = auto.
chifliiiii,

1
Sono d'accordo con @chifliiiii che potrebbe esserci di aiuto se chiarisci esattamente come / cosa stai cercando di organizzare. Inoltre, le categorie possono avere sottocategorie che potrebbero essere più facili per formare una gerarchia strutturata.
Chris,

Questo post potrebbe avere più dettagli e indicazioni per te: wordpress.stackexchange.com/questions/49141/…
Alex V.

Risposte:


1

Qui è parte del codice di uno dei miei progetti per impostare una struttura simile per i permalink (stesso slug di base sia per il tipo di posta che per gli archivi di tassonomia), si prega di notare i valori dei parametri 'has_archive' e 'riscrivere' di entrambi i messaggi tipo e tassonomia:

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;
}

Quindi puoi accedere alla categoria "Documentario" del tipo di post di film con questo URL:

site.com/movies/documentary/

e "Film A" della categoria "Documentario" saranno:

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

NOTA: è importante registrare la tassonomia dopo il tipo di post, a causa dell'ordine che le regole di riscrittura del permalink sono generate in WordPress.


0

Senza avere termini più specifici per aiutarmi a capire cosa stai effettivamente cercando di organizzare, non sono sicuro di essere sulla buona strada, ma questo plugin ti aiuta a realizzare quello che stai cercando di fare? http://wordpress.org/extend/plugins/cpt-onomies/

In qualche modo combina titoli di post personalizzati e tassonomie in un modo strano (e forse utile?) ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.