Support » Themes » Costum Post Types und deren Taxonomien

  • Angelina

    (@angelinaseitz)


    Hallo,
    ich hänge seit gestern an einem Problem und finde im WWW leider keine Lösung. Ich hoffe, ich bin bei Euch richtig 🙂

    Und zwar erstelle ich für meinen Arbeitgeber ein neues WordPress-Theme.
    Für den Newsbereich habe ich einen Costum Post Type angelegt.
    Die News haben Kategorien, Fachartikel, Allgemeine News, Produktnews etc.

    Der Code für die Einrichtung der CPT und Taxonomien lautet:

    function XXX_news() {
    	$labels = array(
    		'name'                  => 'News',
    		'singular_name'         => 'News',
    		'add_new'               => 'Erstellen',
    		'add_new_item'          => 'Neuen News-Beitrag erzeugen',
    		'edit_item'             => 'News-Beitrag bearbeiten',
    		'new_item'              => 'Neuer News-Beitrag',
    		'view_item'             => 'News-Beitrag ansehen',
    		'view_items'            => 'News-Beiträge ansehen',
    		'search_items'          => 'Nach News-Beitrag suchen',
    		'not_found'             => 'Nichts gefunden',
    		'not_found_in_trash'    => 'Nichts im Papierkorb gefunden',
    		'all_items'             => 'Alle News-Beiträge',
    		'archives'              => 'News-Archiv',
    		'attributes'            => 'Newsattribute',
    		'insert_into_item'      => 'Einfügen',
    		'uploaded_to_this_item' => 'Medien für News',
    		'featured_image'        => 'Beitragsbild',
    		'set_featured_image'    => 'Beitragsbild festlegen',
    		'remove_featured_image' => 'Beitragsbild entfernen',
    		'use_featured_image'    => 'Beitragsbild verwenden',
    		'menu_name'             => 'Newsroom',
    		'filter_items_list'     => 'News',
    		'items_list_navigation' => 'News',
    		'items_list'            => 'Weitere News',
    		'name_admin_bar'        => 'Newsroom',
    	);
    
    	$args = array(
    		'labels'              => $labels,
    		'supports'            => array( 'title', 'editor', 'thumbnail',),
    		'hierarchical'        => false,
    		'public'              => true,
    		'show_ui'             => true,
    		'show_in_menu'        => true,
    		'show_in_nav_menus'   => true,
    		'show_in_admin_bar'   => true,
    		'menu_position'       => 5,
    		'can_export'          => false,
    		'has_archive'         => 'news',
    		'capability_type'     => 'post',
             'menu-icon'           => 'dashicons-rest-api',
    		'rewrite'             => array('slug' => 'news'),
    		'supports'      => array('title', 'editor', 'excerpt', 'revisions', 'thumbnail'),
    	);
    	register_post_type( 'news', $args );
    }
    add_action( 'init', 'XXX_news', 0);
    
    // news category
    $labels = array(
    	'name' => __('Art des Newsbeitrags', 'XXX')
    );
    $args = array(
    	'hierarchical'      => true,
    	'labels'            => $labels,
    	'rewrite'             => array('slug' => 'news'),
    	'show_admin_column' => true,
    	'show_in_nav_menus' => true,
    	'with_front'		=> false
    );
    register_taxonomy('news_category', 'news', $args);

    Auf der archive-news.php lasse ich mir die Kategorien so anzeigen:

    <?php
                    wp_list_categories( array(
                        'taxonomy' => 'news_category',
                        'style' => '<br>',
                        'title_li' => 'news-categories',
                        'orderby'    => 'name',
                        'separator' => '</p><p class="news-cat">',        
                    ) );?>

    Die Links zu den Kategorien (bzw. zu den Archiv-Seiten der Kategorien) sind: „…/news/kategorie-name“

    Danach folgt ein Loop mit allen News. In diesem Loop soll ebenfalls die Kategorie des jeweiligen Beitrags verlinkt werden. Hierfür habe ich
    ´<?php the_terms( $post->ID, ‚category‘ ); ?>´ verwendet.
    Nun zu meinem Problem: der Link zu den Kategorien lautet „…/kategorie/kategorie-name“

    Wie kann ich den Link, den die the_terms-Funktion automatisch generiert, manipuliere, so, dass diese Links ebenfalls „…/news/kategorie-name“ lautet? Oder hat jemand einen anderen Lösungsansatz für mich?

    Sorry, das ist mein erster Forum-Beitrag EVER 😀 Ich hoffe, ich habe das verständlich erklärt.

    Danke!!

Ansicht von 1 Antwort (von insgesamt 1)
  • Innerhalb von register_taxonomy() gibst du mit 'rewrite' => array('slug' => 'news'), die Permalink-Struktur für die Taxonomie vor. Hast du mal versucht, das auf „category“ zu ändern?

    Grundsätzlich bist du bei Fragen zur Programmierung in https://wordpress.stackexchange.com besser aufgehoben, während wir hier Anwendungs-Support anbieten.

Ansicht von 1 Antwort (von insgesamt 1)