Benutzerdefinierte Archivvorlage für Posttyp
-
-
Können Sie den Code aus Ihrerfunctions.php veröffentlichen,der das CPT deklariert?Can you post the code from your functions.php that declares the CPT?
- 2
- 2012-06-21
- Rachel Baker
-
Haben Sie auch Permalinksnach dem Deklarieren des CPTerneutgespeichert?Also, have you re-saved permalinks after declaring the CPT?
- 0
- 2014-02-01
- helgatheviking
-
3 Antworten
- Stimmen
-
- 2014-02-01
Ich denke,Sie sollten Unterstützungfürbenutzerdefinierte Taxonomietypen hinzufügen und die Dateitaxonomy-cpt-type.phpbenennen,wobei cpt der Name Ihresbenutzerdefinierten Beitragstypsist.
Ihre CPT-Archivdatei sollte archive-cpt.php heißen,wobei cpt der Name Ihresbenutzerdefinierten Beitragstypsist.
Hierist dergesamte Code,dergetestet wurde.
Hinweis: Sie sollten Tag oder Tagsnicht als Namenfür Ihrenbenutzerdefinierten Taxonomietyp verwenden,da dies zu Konfliktenmit vorhandenen Kernfunktionenführt.
add_action( 'init', 'wpsites_cpt_post_type' ); function wpsites_cpt_post_type() { register_post_type( 'cpt', array( 'labels' => array( 'name' => __( 'CPT', 'theme' ), 'singular_name' => __( 'CPT', 'theme' ), ), 'has_archive' => true, 'hierarchical' => true, 'menu_icon' => true, 'public' => true, 'rewrite' => array( 'slug' => 'cpt', 'with_front' => false ), 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'revisions', 'page-attributes' ), 'taxonomies' => array( 'cpt-type' ), )); }
Und dies zum Registriereneiner Taxonomietyp-Seite,auf der Sie unbegrenzte Steuertypenerstellen können.
add_action( 'init', 'wpsites_register_taxonomy_types' ); function wpsites_register_taxonomy_types() { register_taxonomy( 'cpt-type', 'cpt', array( 'labels' => array( 'name' => _x( 'Types', 'taxonomy general name', 'theme' ), 'add_new_item' => __( 'Add New CPT Type', 'theme' ), 'new_item_name' => __( 'New CPT Type', 'theme' ), ), 'exclude_from_search' => true, 'has_archive' => true, 'hierarchical' => true, 'rewrite' => array( 'slug' => 'cpt-type', 'with_front' => false ), 'show_ui' => true, 'show_tagcloud' => false, )); }
Ersetzen Sie alle Instanzen von cpt durch den Namen Ihresbenutzerdefinierten Beitragstyps und speichern Sie Ihre Permalink-Einstellungenerneut.
Andernfalls liegtmöglicherweiseein Problemmit dem Codein Ihrer Dateitaxonomy-cpt-type.php vor.
I think you should add support for custom taxonomy types and name the file taxonomy-cpt-type.php where cpt is the name of your Custom Post Type.
Your CPT archive file should be named archive-cpt.php where cpt is the name of your Custom Post Type.
Here's all the code which has been tested.
Note: You shouldn't be using tag or tags as the name of your custom taxonomy type as it will conflict with existing core functions.
add_action( 'init', 'wpsites_cpt_post_type' ); function wpsites_cpt_post_type() { register_post_type( 'cpt', array( 'labels' => array( 'name' => __( 'CPT', 'theme' ), 'singular_name' => __( 'CPT', 'theme' ), ), 'has_archive' => true, 'hierarchical' => true, 'menu_icon' => true, 'public' => true, 'rewrite' => array( 'slug' => 'cpt', 'with_front' => false ), 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'revisions', 'page-attributes' ), 'taxonomies' => array( 'cpt-type' ), )); }
And this for registering a Taxonomy Type page where you can create unlimited tax types.
add_action( 'init', 'wpsites_register_taxonomy_types' ); function wpsites_register_taxonomy_types() { register_taxonomy( 'cpt-type', 'cpt', array( 'labels' => array( 'name' => _x( 'Types', 'taxonomy general name', 'theme' ), 'add_new_item' => __( 'Add New CPT Type', 'theme' ), 'new_item_name' => __( 'New CPT Type', 'theme' ), ), 'exclude_from_search' => true, 'has_archive' => true, 'hierarchical' => true, 'rewrite' => array( 'slug' => 'cpt-type', 'with_front' => false ), 'show_ui' => true, 'show_tagcloud' => false, )); }
Replace all instances of cpt with the name of your custom post type then re-save your Permalink settings.
Otherwise, it may be a problem with the code in your taxonomy-cpt-type.php file.
-
- 2012-06-21
Ichglaube,
tag
istein reservierter Namefür das Umschreiben von Taxonomienin WordPress,derfür die Standardtaxonomiepost_tag
verwendet wird.Das könnte das Problem verursachen.Benennen Sie diebenutzerdefinierte Taxonomieincoupon-tag
um.Übrigens: Haben Sie versucht,die Umschreibungen zu löschen,indem Sie die Permalink-Seite auf der Registerkarte "Einstellungen" aufgerufen haben?
i believe
tag
is a reserved taxonomy rewrite name on wordpress to be used on defaultpost_tag
taxonomy. That might cause the issue. Rename the custom taxonomy to something likecoupon-tag
.BTW: did you try flushing the rewrites by visiting permalink page from settings tab?
-
Ja,ich habe die Einstellungenfür Permalinks aktualisiert.Hatimmernochnichtfunktioniert.Ich habe aucheine andere Schnecke zum Umschreiben verwendet und dasgleiche Problemfestgestelltyes, I have updated the permalinks settings. Still didn't work. I also used another slug for rewrite, and got the same issue
- 0
- 2012-06-21
- Godforever
-
@Godforever: okey,dumusst deinen Code zeigen,um weitere Hilfe zuerhalten.@Godforever: okey, you will need to show your code to get further help.
- 0
- 2012-06-23
- Sisir
-
- 2013-10-22
Stellen Sie zunächst sicher,dass Sie die Vorlagenhierarchie verstehen. Füreinen Beitragstypmit dem Namen Gutschein mit
'has_archive' => true
undeine Taxonomiemit dem Namen coupon-tag (gemäß @ Sisirs Rat),beide aufpublicgesetzt,- /coupon/verwendet archive-coupon.php,archive.php oderindex.php,je nachdem,wasin dieser Reihenfolgegefunden wird
- /coupon-tag/foo/verwendettaxonomy-coupon-tag-foo.php,taxonomy-coupon-tag.php,taxonomy.php,archive.php oderindex.php,je nachdem,was zuerstin dieser Reihenfolgegefunden wird . Beachten Sie,dass archive-coupon.phpnichtin dieser Listeenthaltenist (dasistein häufiger Fehler).
- home.php wirdnurfür die Homepage verwendet
Alsnächstesist
tag
ein spezielles Wort,und Sie werden auf Umschreibekonflikte stoßen,wenn Sie dieses als Slug verwenden. Sie solltenetwas anderes verwenden.Schließlichist das Löschen Ihrer Umschreibungen hier sehr wichtig,und Siemüssen daran denken,diesnach Änderungen am relevanten Code (Änderungen am CPT oder an der Taxonomie) zutun. Dereinfachste Weg,dies zutun,ist,zu Einstellungen & rarr; Permalinks und klicken Sie auf "Änderungen speichern".
First off, let's make sure you understand the template hierarchy. For a post type named coupon with
'has_archive' => true
and a taxonomy named coupon-tag (following @Sisir's advice), both set to public,- /coupon/ will use archive-coupon.php, archive.php, or index.php, whichever is found in that order
- /coupon-tag/foo/ will use taxonomy-coupon-tag-foo.php, taxonomy-coupon-tag.php, taxonomy.php, archive.php, or index.php, whichever is found first in that order. Note that archive-coupon.php is not in this list (that's a common mistake).
- home.php will only be used for the homepage
Next,
tag
is a special word and you will encounter rewrite conflicts using that as your slug. You should use something else.Lastly, flushing your rewrites is very important here, and you need to remember to do it after any changes to any of the relevant code (any changes to the CPT or taxonomy). The easiest way to do so is to go to Settings → Permalinks and click "Save Changes".
Ich habeein ähnliches Problem wie dieses: Benutzerdefinierte Beitragstypvorlage - Archiv
Ich habeeinen benutzerdefinierten WordPress-Beitragstypnamens
coupon
. Ich versuche,die Vorlagemithilfe vonarchive-coupon.php
zuzuweisen,aber siegeht direkt zuhome.php
.Ich habe aucheine benutzerdefinierte Taxonomie dieses CPTnamens
tags
mit derrewrite rule => "tag"
Wennich zueiner URL wie diesergehe -http://mysite.com/tag/3d
,möchteicheine benutzerdefinierte Vorlagefürmeinen benutzerdefinierten Beitragstyp oder allgemeinfür Taxonomien anzeigen.Ich habe auch die Vorlage
taxonomy.php
ausprobiert,sie wirdjedoch weiterhinignoriert. Was könnte das Problem sein?Update -
Ich weißnicht,was wirklichpassiertist. Aber vorher hatteicheine Vorlagenamenstaxonomy-store.php. Alsichesin einen anderen Namen umbenannte,begann Taxonomy
tag
mit der Verwendung der Vorlagendateitaxonomy.php
. Undtrotzdemfunktioniertarchive-coupon.php
nicht.