Permalink-Struktur für mehrere Post-Typ-Archive nach Taxonomie


8

Vor kurzem habe ich an einem fortgeschrittenen WordPress-Projekt gearbeitet und bin dabei, die Permalink-Struktur für benutzerdefinierte Beitragstypen zu ändern.

Ich habe 3 Post - Typen erstellt können sagen: Typ1, Typ2, Typ3 und einen Taxonomie - Test für alle von ihnen registriert. Ich habe 3 Begriffe in der benutzerdefinierten Taxonomie cat1, cat2, cat3

Folgendes möchte ich erreichen:

anstatt auf alle Beiträge von cat by zuzugreifen

siteurl / test / cat1

Ich möchte auf jedes Post-Type-Archiv nach Taxonomie-Katze zugreifen wie:

siteurl / type1 / cat1


Was ist URL-Struktur?
Amit

1
Ich denke, Sie sind mit benutzerdefinierten Beitragstypen und Taxonomien verwechselt ... aber wenn Sie die tatsächlichen Namen angeben, die Sie verwenden, kann ich sie besser verstehen. Zum Beispiel ist Typ1 = Fahrzeug, Kat1 = Typ und Term1 = Auto.
Chifliiiii

1
Ich stimme @chifliiiii zu, dass es uns helfen kann, wenn Sie genau klären, wie / was Sie zu organisieren versuchen. Auch Kategorien können Unterkategorien haben, die für die Bildung einer strukturierten Hierarchie einfacher sein können.
Chris

Dieser Beitrag könnte einige Details und Anweisungen für Sie haben: wordpress.stackexchange.com/questions/49141/…
Alex V.

Antworten:


1

Hier ist ein Teil des Codes aus einem meiner Projekte zum Einrichten einer ähnlichen Struktur für Permalinks (gleicher Basis-Slug sowohl für den Post-Typ als auch für das Taxonomie-Archiv). Bitte beachten Sie die Werte der Parameter 'has_archive' und 'rewrite' beider Posts Typ und 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;
}

Dann können Sie mit dieser URL auf die Kategorie "Dokumentarfilm" des Typs "Filmbeitrag" zugreifen:

site.com/movies/documentary/

und "Film A" der Kategorie "Dokumentarfilm" sind:

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

HINWEIS: Es ist wichtig, die Taxonomie nach dem Beitragstyp zu registrieren, da in WordPress Regeln für das Umschreiben von Permalinks in der Reihenfolge generiert werden.


0

Ich bin mir nicht sicher, ob ich auf dem richtigen Weg bin, ohne genauere Begriffe zu haben, die mir helfen, zu verstehen, was Sie tatsächlich zu organisieren versuchen. Aber hilft Ihnen dieses Plugin dabei, das zu erreichen, was Sie tun möchten? http://wordpress.org/extend/plugins/cpt-onomies/

Es verbindet benutzerdefinierte Post-Titel und Taxonomien auf seltsame (und möglicherweise nützliche?) Weise ...

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.