Tag-Liste und Tag-Index für benutzerdefinierten Post-Typ

WordPress-Problem:

Ich habe einen benutzerdefinierten Beitragstyp: custom-post-type .

 register_post_type( 'custom-post-type', array( 'label' => __('Custom Post Type'), 'public' => true, 'show_ui' => true, '_builtin' => false, // It's a custom post type, not built in '_edit_link' => 'post.php?post=%d', 'capability_type' => 'post', 'hierarchical' => false, 'rewrite' => array("slug" => "custom-posts"), // Permalinks 'query_var' => "custom-post-type", 'menu_position' => 30, 'supports' => array('title', 'excerpt', 'editor', 'thumbnail',), 'taxonomies' => array('category', 'custom-taxonomy'), 'has_archives' => true, )); 

Ich habe eine Taxonomie: custom-taxonomy

 register_taxonomy( 'custom-taxonomy', array('custom-taxonomy'), array( 'hierarchical' => false, 'labels' => array ( 'name' => _x( 'Custom Taxonomy', 'taxonomy general name' ), 'singular_name' => _x( 'Custom Taxonomy', 'taxonomy singular name' ), 'search_items' => __( 'Search Custom Taxonomy' ), 'all_items' => __( 'All Custom Taxonomy' ), 'edit_item' => __( 'Edit Custom Taxonomy' ), 'update_item' => __( 'Update Custom Taxonomy' ), 'add_new_item' => __( 'Add New Custom Taxonomy' ), 'new_item_name' => __( 'New Custom Taxonomy' ), 'menu_name' => __( 'Custom Taxonomy' ), ), 'show_ui' => true, 'query_var' => true, 'rewrite' => array('slug' => 'custom-taxonomy', 'with_front' => true), ) ); 

Ich muss in der Lage sein, eine Liste von Tags basierend auf den Tags zu erstellen, die dem custom-post-type zugewiesen sind. Ich würde jedes Tag benötigen, um auf eine Indexseite für dieses Tag zu verweisen, die für den benutzerdefinierten Posttyp spezifisch ist.

Beispielsweise:

\tag\mytag bringt jeden Beitrag mit dem Tag mytag . \custom-posts\tag\mytag würde alle Posts vom Typ custom-posts mit dem Tag mytag .

Ich hoffe, jede Lösung in ein WordPress-Plugin zu verwandeln.

================================================= =========== EDIT: Großer Durchbruch.

WordPress Rewrites sind für mich ein bisschen ein Black-Box-Mysterium. Ich war misstrauisch, dass Rewrite-Regeln in meinen Kämpfen eine Rolle spielen könnten, aber ich konnte die Regeln nicht debuggen.

In Schritten Der Monkeyman Rewrite Analyzer . Dieses Plugin beschreibt Ihre WordPress Rewrite-Regeln und listet sie alle in der Reihenfolge der Anwendung auf. Außerdem können Sie einen Pfad übergeben, um herauszufinden, welche Regeln in welcher Reihenfolge übereinstimmen.

Nach einigen Optimierungen und weiteren Untersuchungen hatte ich den Neuschreibpfad für die Taxonomie in “custom-posts / tag” geändert. Dies führte zu der korrekten Rewrite-Regel, aber der Rewrite-Analysator schlug vor, dass /custom-post/tag/mytag mit Post-Anhängen übereinstimmte, aber das Umschreiben der Taxonomie war weiter unten in der Liste vorhanden.

Ich habe versucht, die Reihenfolge zu wechseln, in der ich meine Taxonomie und den Post-Typ deklariert habe, und ich habe einige Details wie die Regel zum Umschreiben der Taxonomie geändert. Mit dem Hinzufügen einer Dummy Taxonomie-Custom-Taxonomoy.php habe ich eine Seite, die nicht 404.

 register_taxonomy( 'custom-taxonomy', array('custom-post-type'), array( 'hierarchical' => false, 'labels' => array ( 'name' => _x( 'Custom Taxonomy Tags', 'taxonomy general name' ), 'singular_name' => _x( 'Custom Taxonomy Tag', 'taxonomy singular name' ), 'search_items' => __( 'Search Custom Taxonomy Tags' ), 'all_items' => __( 'All Custom Taxonomy Tags' ), 'edit_item' => __( 'Edit Custom Taxonomy Tags' ), 'update_item' => __( 'Update Custom Taxonomy Tags' ), 'add_new_item' => __( 'Add New Custom Taxonomy Tags' ), 'new_item_name' => __( 'New Custom Taxonomy Tag' ), 'menu_name' => __( 'Custom Taxonomy Tags' ), ), 'show_ui' => true, 'query_var' => true, 'rewrite' => array('slug' => 'custom-posts/tag', 'with_front' => true), ) ); register_post_type( 'custom-post-type', array( 'label' => __('custom Post'), 'public' => true, 'show_ui' => true, '_builtin' => false, // It's a custom post type, not built in '_edit_link' => 'post.php?post=%d', 'capability_type' => 'post', 'hierarchical' => false, 'rewrite' => array("slug" => "custom-posts"), // Permalinks 'query_var' => "custom-posts", 'menu_position' => 30, 'supports' => array('title', 'excerpt', 'editor', 'thumbnail',), 'taxonomies' => array('category', 'custom-taxonomy'), 'has_archives' => true, )); 

Als nächstes werde ich herausfinden, wie die Vorlage die Artikel anzeigen kann, aber ich bin wieder in vertrautem Territorium!

Vielleicht braucht das ja kein Plugin!

Solutions Collecting From Web of "Tag-Liste und Tag-Index für benutzerdefinierten Post-Typ"

Es gibt eine WordPress-function namens get_terms . Dadurch erhalten Sie die Ausgabe Ihrer benutzerdefinierten Taxonomie auf Ihrer Website.

Ich habe auch Einblick in die Verwendung der nativen Tag-Unterstützung von WordPress, wenn Sie Ihren benutzerdefinierten Beitragstyp und benutzerdefinierte Vorlagen für Taxonomien registrieren.

Wenn Sie alle Instanzen Ihrer benutzerdefinierten Taxonomie abrufen und eine Liste formatieren möchten, können Sie get_the_term_list verwenden und Ihre benutzerdefinierte Taxonomie als Parameter 2 der function verwenden.

 < ?php get_the_term_list( $id, $taxonomy, $before, $sep, $after ) ?> 

Wenn Sie die Instanzen Ihrer benutzerdefinierten Taxonomie pro Post abrufen möchten , verwenden Sie wp_get_post_terms und verwenden Sie Ihre benutzerdefinierte Taxonomie als Parameter 2 der function.

 < ?php $terms = wp_get_post_terms( $post_id, $taxonomy, $args ) ?> 

Beim Erstellen eines benutzerdefinierten Post-Typs können Sie das Argument “Taxonomien” festlegen, um die native Post-Tag- functionalität von WordPress zu verwenden.

 'taxonomies' => array('category', 'tags', 'custom-taxonomy'), 

Dann könnten Sie die functionen nutzen, die für Tags wie the_tags oder wp_tag_cloud angeboten werden

Sie sollten auch eine taxonomy.php in Betracht ziehen, da WordPress die Anzeige einer Taxonomie aus taxonomy.php standardmäßig vornimmt. Auf diese Weise können Sie auch die Darstellung bestimmter Taxonomien anpassen, da für diesen Begriff spezifische Dateien vorhanden sind. Taxonomie – {Taxonomie} – {slug} .php. Besuchen Sie die Vorlagenhierarchie