WordPress benutzerdefinierte Taxonomie Seite

Ich habe eine Frage, die ich schon einmal gestellt habe, aber keine der Antworten hat meine Probleme getriggers. Es ist etwas, auf das ich schon einmal gestoßen bin, aber es nie geschafft habe, es zu lösen.

Ich habe eine saubere WordPress-Installation und in der functions.php Datei habe ich einen benutzerdefinierten Post-Typ erstellt

 register_nav_menu('main', 'Main navigation menu'); function add_custom_post_type() { $labels = array( 'name' => _x('Books', 'post type general name'), 'singular_name' => _x('Book', 'post type singular name'), 'add_new' => _x('Add New', 'book'), 'add_new_item' => __('Add New Book'), 'edit_item' => __('Edit Book'), 'new_item' => __('New Book'), 'all_items' => __('All Books'), 'view_item' => __('View Book'), 'search_items' => __('Search Books'), 'not_found' => __('No books found'), 'not_found_in_trash' => __('No books found in Trash'), 'parent_item_colon' => '', 'menu_name' => __('Books') ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => null, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ) ); register_post_type('book', $args); } 

Ich habe eine archive-book.php und single-book.php Vorlagendateien für diese erstellt und alles funktioniert in Ordnung. Ich kann die Bücher sehen, wenn ich zu “http: // localhost / wordpress / book” gehe. Jetzt möchte ich eine benutzerdefinierte Taxonomie erstellen, also habe ich das auch in functions.php getan:

 add_action('init', 'add_custom_post_type'); function add_custom_taxonomy() { register_taxonomy( 'rating', 'book', array( 'label' => 'Rating', 'hierarchical' => true, 'show_ui' => true, 'query_var' => 'book', 'has_archive' => true, 'rewrite' => array( 'slug' => 'book/rating' ) ) ); } 

Und die Taxonomie erscheint auf der Admin-Seite, ich kann neue Begriffe hinzufügen und sie zu Büchern hinzufügen. Aber jetzt kommt das Problem. Ich möchte zu einer Übersicht über alle Bücher mit, sagen wir, Bewertung “nett” gehen, ich würde zu “http: // localhost / wordpress / book / rating / nice” gehen. Ich habe die folgenden Vorlagendateien erstellt: taxonomy-rating-nice.php, taxonomy-rating.php und taxonomy.php.

Aber irgendwie zeigt WordPress nur die index.php Datei an und listet keine Bücher auf. Ich habe versucht, die Umschreibregeln zu leeren mit:

 add_action('init', 'custom_taxonomy_flush_rewrite'); function custom_taxonomy_flush_rewrite() { global $wp_rewrite; $wp_rewrite->flush_rules(); } 

Und:

 flush_rewrite_rules(false); 

Aber nichts scheint zu helfen.

Also, jeder, der mir helfen kann? Wenn Sie mehr Informationen benötigen, sagen Sie bitte, weil ich dieses Problem wirklich beheben möchte!

Solutions Collecting From Web of "WordPress benutzerdefinierte Taxonomie Seite"

Sie haben ein paar Probleme –

  1. Sie query_var in Ihrer benutzerdefinierten Taxonomie auf 'book' query_var 'book' , was mit der query_var für Ihren benutzerdefinierten query_var kollidiert. ändere das in true und es wird standardmäßig auf den Namen der Taxonomie 'rating' .

  2. Es gibt kein has_archive Argument für register_taxonomy , obwohl dies wahrscheinlich nichts bewirkt. Dies ist sinnvoll, wenn Sie darüber nachdenken, da ein Taxonomiebegriff immer eine Form von Archiv ist.

  3. Das letzte Problem, auf das Sie stoßen können, hat Vorrang. Wenn mehrere Umschreibregeln für eine bestimmte URL gelten, wird diejenige mit der höchsten Priorität ausgewählt. Wenn Sie zuerst Ihren Post-Typ und dann Ihre Taxonomie registrieren, wird WordPress mit Ihrem Beispiel http://localhost/wordpress/book/rating/nice glauben, dass Sie einen Anhang namens nice , der zu einem Buch namens rating , laden möchten. Wenn Sie Ihre Taxonomie zuerst registrieren, dann registrieren Sie Ihren Post-Typ, Ihre Taxonomie hat in diesem Fall Vorrang und alles sollte wie erwartet funktionieren.