it-swarm.com.de

Permalink-Struktur für Archive mit mehreren Beitragstypen nach Taxonomie

Vor kurzem habe ich an einem fortgeschrittenen WordPress-Projekt gearbeitet und bin mit dem Ändern der Permalink-Struktur für benutzerdefinierte Beitragstypen festgefahren.

Ich habe 3 Beitragstypen erstellt, sagen wir: Typ1, Typ2, Typ3 und eine Taxonomie Test registriert für alle. 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 nach Taxonomie auf alle Post-Type-Archive zugreifen, z. B .:

siteurl/type1/cat1

8
Abed

Hier ist ein Teil des Codes aus einem meiner Projekte, um eine ähnliche Struktur für Permalinks einzurichten (derselbe Basis-Slug sowohl für den Post-Typ als auch für die Taxonomie-Archive). Bitte beachten Sie die Werte der Parameter 'has_archive' und 'rewrite' für beide 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 Post-Typ zu registrieren, da in WordPress Regeln zum Umschreiben von Bestell-Permalinks generiert werden.

1
Parham

Ich bin mir nicht sicher, ob ich auf dem richtigen Weg bin, aber hilft Ihnen dieses Plugin dabei, das zu erreichen, was Sie versuchen? http://wordpress.org/extend/plugins/cpt-onomies/

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

0
mltsy