it-swarm.com.de

Archivseite für benutzerdefinierte Taxonomie funktioniert nicht

Ich habe den benutzerdefinierten Beitragstyp coursemit einem zugehörigen benutzerdefinierten Taxonomie-curriculum-area. Auf dem Permalink domain.com/course/ wird erwartungsgemäß eine Liste aller Kurse angezeigt. Auf dem Permalink domain.com/curriculum-area/equality wird jedoch die Homepage angezeigt. (Die Homepage ist eine statische Seite). Ich möchte, dass stattdessen ein Archiv aller coursesim angegebenen curriculum-area angezeigt wird: equalityname__. Wenn ich einen front-page.php habe, verwendet diese Archivseite auch die Vorlage von front-page.php.

Wie kann ich die archive.php-Vorlage für diese benutzerdefinierte Taxonomie erhalten?

// functions.php:

<?php

// add thumbnail support
add_theme_support( 'post-thumbnails' ); 

// add custom post type 'Course'
add_action( 'init', 'register_cpt_course' );

function register_cpt_course() {

    // custom taxonomy - curriculum area
    $args_curriculum_area_taxonomy = array(
        'hierarchical'          => true,
        'labels'                => array(
            'name' => 'Curriculum Areas',
            'singular_name' => 'Curriculum Area'
        ),
        'show_ui'               => true,
        'show_admin_column'     => true,
        'update_count_callback' => '_update_post_term_count',
        'query_var'             => true,
        'rewrite'               => true
    );

    register_taxonomy( 'Curriculum Area', 'course', $args_curriculum_area_taxonomy );

    // custom post type - course
    $cpt_course_args = array( 
        'labels' => array(
            'name' => 'Courses',
            'singular_name' => 'course'
        ),
        'hierarchical' => false,
        'description' => 'The place to display courses',
        'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields', 'revisions' ),
        'taxonomies' => array( 'curriculum_area' ),
        'public' => true,
        'show_ui' => true,
        'show_in_menu' => true,
        'menu_position' => 5,

        'show_in_nav_menus' => true,
        'publicly_queryable' => true,
        'exclude_from_search' => false,
        'has_archive' => true,
        'query_var' => true,
        'can_export' => true,
        'rewrite' => array(
            'slug' => 'course',
            'with_front' => true
        ),
        'capability_type' => 'post'
    );

    register_post_type( 'course', $cpt_course_args );

}

?>
1
Harry

Ihr angegebener Permalink ist domain.com/curriculum-area/equality, aber Sie haben Ihre Taxonomie als Curriculum Area registriert.

Damit domain.com/curriculum-area/equality funktioniert, ändern Sie Curriculum Area in:

register_taxonomy( 'Curriculum Area', 'course', $args_curriculum_area_taxonomy );

sein:

register_taxonomy( 'curriculum-area', 'course', $args_curriculum_area_taxonomy );

Ändern Sie auch diese Zeile 'taxonomies' => array( 'curriculum_area' ), in 'taxonomies' => array( 'curriculum-area' ),

Ich habe vergessen zu sagen, denken Sie daran, Ihre Permalinks nach diesen Änderungen zu spülen! (Gehen Sie zur Seite mit den Permalinks-Einstellungen und drücken Sie einfach auf Speichern.).

2
Pieter Goosen

Dies ist abhängig von Ihrer Vorlagenhierarchie und nicht vom angezeigten Code. archive.php ist die Fallback-Vorlage für Datum, Taxonomie, Tag, Autor, Kategorie und CTP-Archiv Seiten. Es sollte also Ihre Archivtaxonomieseite rendern.

Sehen Sie sich den Code in Ihrem archive.php an und sehen Sie, was er tut. Beispielsweise könnte er eine bestimmte Schleife laden oder eine andere Datei einschließen, die die Schleife ausführt. Sie können zu einem der Standardthemen zurückkehren, um das Problem einzugrenzen.

Normalerweise ist es eine gute Idee, eine bestimmte Vorlage für curriculum-area anzugeben, indem Sie eine Seite wie taxonomy-curriculum-area.php erstellen. Wenn Sie möchten, können Sie auch taxonomy-equality.php erstellen.

Siehe: https://codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display

0
Wyck