Problem mit benutzerdefinierten Post-Typ- und Taxonomie-Slugs

Ich arbeite mit benutzerdefinierten Post-Typen in WordPress und habe eine Frage zu Schnecken.

Nehmen wir an, wir müssen ein benutzerdefiniertes Post-Quiz mit Taxonomie-Quiz-Kategorie erstellen. Ich habe den folgenden Code verwendet:

// Create and register custom post type quiz function create_posttype_quiz() { $labels = array( 'name' => _x( 'Quiz', 'post type general name' ), 'singular_name' => _x( 'Quiz', 'post type singular name' ), 'add_new' => _x( 'Add New', 'quiz' ), 'add_new_item' => __( 'Add New Quiz' ), 'edit_item' => __( 'Edit Quiz' ), 'new_item' => __( 'New Quiz' ), 'all_items' => __( 'All Quiz' ), 'view_item' => __( 'View Quiz' ), 'search_items' => __( 'Search Quiz' ), 'not_found' => __( 'No quiz found' ), 'not_found_in_trash' => __( 'No quiz found in the Trash' ), 'parent_item_colon' => '', 'menu_name' => 'Quizzes' ); $args = array( 'labels' => $labels, 'description' => 'Holds our quiz and quiz specific data', 'public' => true, 'menu_position' => 5, 'supports' => array( 'title', 'editor' ), 'has_archive' => true, 'rewrite' => array('slug' => 'quiz'), 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, ); register_post_type( 'quiz', $args ); } add_action( 'init', 'create_posttype_quiz' ); // Create and register quiz categories function create_taxonomies_quiz() { $labels = array( 'name' => _x( 'Quiz Categories', 'taxonomy general name' ), 'singular_name' => _x( 'Quiz Category', 'taxonomy singular name' ), 'search_items' => __( 'Search Quiz Categories' ), 'all_items' => __( 'All Quiz Categories' ), 'parent_item' => __( 'Parent Quiz Category' ), 'parent_item_colon' => __( 'Parent Quiz Category:' ), 'edit_item' => __( 'Edit Quiz Category' ), 'update_item' => __( 'Update Quiz Category' ), 'add_new_item' => __( 'Add New Quiz Category' ), 'new_item_name' => __( 'New Quiz Category' ), 'menu_name' => __( 'Quiz Categories' ), ); $args = array( 'labels' => $labels, 'hierarchical' => true, //'show_admin_column'=> true, 'rewrite' => array('hierarchical'=>true, 'slug'=>'quizzes', 'with_front'=>false), ); register_taxonomy( 'quiz_category', 'quiz', $args ); } add_action( 'init', 'create_taxonomies_quiz', 0 ); 

Alles funktioniert gut, ich bin in der Lage Quiz zu erstellen und zu bearbeiten, sie zu Quiz-Kategorien hinzuzufügen etc. Außerdem kann ich auf Quizfragen im Frontend zugreifen, zB site.com/quiz/sample-quiz-one, site.com/quiz/sample -quiz-two … und listet Quiz in Quiz-Kategorien auf, zB site.com/quizzes/category-one, site.com/quizzes/category-two …

Das Problem ist, dass ich Tests nicht unter site.com/quizzes, sondern unter site.com/quiz auflisten kann . ( site.com/quizzes wird den Fehler “Seite nicht gefunden” erzeugen).

Grundsätzlich würde ich gerne in der Lage sein:

  • Rufen Sie ein einzelnes Quiz unter URL: site.com/quiz/sample-quiz-one auf
  • Listen Sie alle Quizfragen auf site.com/quizzes statt site.com/quiz auf .

Ist es möglich, dies ohne htaccess oder irgendeine andere Umleitung zu erreichen, aber den obigen Code verwendend (vielleicht einige Argumente, die ich nicht kenne)?

Solutions Collecting From Web of "Problem mit benutzerdefinierten Post-Typ- und Taxonomie-Slugs"

Ihr Problem ist, dass WordPress kein Archiv für alle Beiträge in einer bestimmten Taxonomie hat, sondern nur Archive für Beiträge in jedem Begriff dieser Taxonomie.

In Ihrer CPT-Registrierung können Sie 'has_archive' => 'quizzes' so dass der Archivierungs-Slug vom Post-Typ sich vom Singular-Slug unterscheidet. Ich bin mir jedoch nicht sicher, ob das richtig funktioniert, wenn Ihre Taxonomie diesen Slug auch für Termarchive verwendet.