Wie erstellt man Vorlagen für Taxonomien? Was muss ich in diesem Code ändern?

Ich habe einen benutzerdefinierten Post-Typ und seine Taxonomien erstellt . Der Code ist:

add_action( 'init', 'register_cpt_portfolio' ); function register_cpt_portfolio() { $labels = array( 'name' => _x( 'portfolios', 'portfolio' ), 'singular_name' => _x( 'portfolio', 'portfolio' ), 'add_new' => _x( 'Add New portfolio', 'portfolio' ), 'add_new_item' => _x( 'Add New portfolio', 'portfolio' ), 'edit_item' => _x( 'Edit portfolio', 'portfolio' ), 'new_item' => _x( 'New portfolio', 'portfolio' ), 'view_item' => _x( 'View portfolio', 'portfolio' ), 'search_items' => _x( 'Search portfolios', 'portfolio' ), 'not_found' => _x( 'No portfolios found', 'portfolio' ), 'not_found_in_trash' => _x( 'No portfolios found in Trash', 'portfolio' ), 'parent_item_colon' => _x( 'Parent portfolio:', 'portfolio' ), 'menu_name' => _x( 'portfolios', 'portfolio' ), ); $args = array( 'labels' => $labels, 'hierarchical' => true, 'description' => 'Test Portfolio Posts', 'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields', 'page-attributes' ), 'taxonomies' => array( 'category' ), 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 2, 'show_in_nav_menus' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'has_archive' => true, 'query_var' => true, 'can_export' => true, 'rewrite' => true, 'capability_type' => 'page' ); register_post_type( 'portfolio', $args ); } add_action( 'init', 'register_taxonomy_portfolio_taxonomies' ); function register_taxonomy_portfolio_taxonomies() { $labels = array( 'name' => _x( 'portfolio_taxonomies', 'portfolio_taxonomies' ), 'singular_name' => _x( 'portfolio_taxonomy', 'portfolio_taxonomies' ), 'search_items' => _x( 'Search portfolio_taxonomies', 'portfolio_taxonomies' ), 'popular_items' => _x( 'Popular portfolio_taxonomies', 'portfolio_taxonomies' ), 'all_items' => _x( 'All portfolio_taxonomies', 'portfolio_taxonomies' ), 'parent_item' => _x( 'Parent portfolio_taxonomy', 'portfolio_taxonomies' ), 'parent_item_colon' => _x( 'Parent portfolio_taxonomy:', 'portfolio_taxonomies' ), 'edit_item' => _x( 'Edit portfolio_taxonomy', 'portfolio_taxonomies' ), 'update_item' => _x( 'Update portfolio_taxonomy', 'portfolio_taxonomies' ), 'add_new_item' => _x( 'Add New portfolio_taxonomy', 'portfolio_taxonomies' ), 'new_item_name' => _x( 'New portfolio_taxonomy', 'portfolio_taxonomies' ), 'separate_items_with_commas' => _x( 'Separate portfolio_taxonomies with commas', 'portfolio_taxonomies' ), 'add_or_remove_items' => _x( 'Add or remove portfolio_taxonomies', 'portfolio_taxonomies' ), 'choose_from_most_used' => _x( 'Choose from the most used portfolio_taxonomies', 'portfolio_taxonomies' ), 'menu_name' => _x( 'portfolio_taxonomies', 'portfolio_taxonomies' ), ); $args = array( 'labels' => $labels, 'public' => true, 'show_in_nav_menus' => true, 'show_ui' => true, 'show_tagcloud' => true, 'show_admin_column' => true, 'hierarchical' => true, 'rewrite' => true, 'query_var' => true ); register_taxonomy( 'portfolio_taxonomies', array('portfolio'), $args ); } 

Jetzt sehe ich dies in der benutzerdefinierten Beitragstyp Admin-Panel

Bildbeschreibung hier eingeben

Das ist in Ordnung und funktioniert gut, um benutzerdefinierte Post-Typ und Taxonomie zu erstellen.

Außerdem habe ich zwei Taxonomien erstellt .

Bildbeschreibung hier eingeben

Jetzt möchte ich die Portfolios in zwei Vorlagen nach der Taxonomie zeigen.

  • Wenn die Taxonomie des benutzerdefinierten Beitragstyps taxtemp1 lautet , sollte sie in der ersten Taxonomievorlage am Frontend angezeigt werden.

  • Wenn die Taxonomie des benutzerdefinierten Beitragstyps Taxtemp2 lautet , sollte sie in der zweiten Taxonomievorlage am Frontend angezeigt werden.

Dafür habe ich zwei PHP-Dateien erstellt.

  1. Taxonomie-Portfolio-Taxonomie-Taxtemp1.php
  2. Taxonomie-Portfolio-Taxonomie-Taxtemp2.php

Ich dachte, es sollte funktionieren, aber wenn ich die Seite besuche, wird sie in der Standard-Seitenvorlage angezeigt. Ich verwende Zwanzig-Zwölf-Thema.

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Warum wird es NICHT in den richtigen Templates angezeigt, die ich erstellt habe (taxonomy-portfolio_taxonomies-taxtemp1.php und taxonomy-portfolio_taxonomies-tostemp2.php)?

Die Archivseite funktioniert jedoch für diesen benutzerdefinierten Posttyp einwandfrei : http: // localhost / wp-test / portfolio /

Solutions Collecting From Web of "Wie erstellt man Vorlagen für Taxonomien? Was muss ich in diesem Code ändern?"

Ich benutzte:

 $args = array( ... 'rewrite' => array( 'slug' => 'portfolio-taxonomies' ), ... ); register_taxonomy( 'portfolio_taxonomies', array('portfolio'), $args ); 

Also meine URL ist vorhersehbar.

Und Sie haben eine Sache falsch gemacht, URL, die Sie setzen, ist NICHT korrekt. Wenn die Rewrite-Regel implementiert ist, wären dies:

 http://localhost/wp-test/portfolio-taxonomies/taxtemp1/ http://localhost/wp-test/portfolio-taxonomies/taxtemp2/ 

Um die richtige URL zu erhalten, gehen Sie zu:

 /wp-admin/edit-tags.php?taxonomy=portfolio_taxonomies&post_type=portfolio 

Und schweben Sie bei jedem Taxonomie-Begriff und klicken Sie auf den Link “Ansicht”, um die entsprechende URL auszulösen. Wenn die Vorlage nicht auslösend ist, müssen wir weiter denken.