Modèle d'archive de type de message personnalisé
-
-
Pouvez-vousposter le code de votrefunctions.php qui déclare le CPT?Can you post the code from your functions.php that declares the CPT?
- 2
- 2012-06-21
- Rachel Baker
-
Deplus,avez-vous réenregistré lespermaliens après avoir déclaré le CPT?Also, have you re-saved permalinks after declaring the CPT?
- 0
- 2014-02-01
- helgatheviking
-
3 réponses
- votes
-
- 2014-02-01
Jepense que vous devriez ajouter lapriseen charge destypes detaxonomiepersonnaliséset nommer lefichiertaxonomy-cpt-type.php où cptest lenom de votretype depublicationpersonnalisé.
Votrefichier d'archive CPT doit êtrenommé archive-cpt.php où cptest lenom de votretype depublicationpersonnalisé.
Voicitout le code qui a ététesté.
Remarque: Vousne devezpas utiliser debalise ou debalises commenom de votretype detaxonomiepersonnalisée carellesentreronten conflit avec lesfonctions debaseexistantes.
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' ), )); }
Et cecipourenregistrer unepage detypes detaxonomie où vouspouvez créer destypes detaxesillimités.
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, )); }
Remplaceztoutes lesinstances de cptpar lenom de votretype depublicationpersonnalisé,puisenregistrez ànouveau vosparamètres de lienpermanent.
Sinon,celapeut être unproblème avec le code de votrefichiertaxonomy-cpt-type.php.
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
Je crois que
tag
est unnom de réécriture detaxonomie réservé sur wordpress à utiliser sur lataxonomiepar défautpost_tag
.Celapourrait causer leproblème.Renommez lataxonomiepersonnaliséeen quelque chose commecoupon-tag
.BTW: avez-vousessayé de vider les réécrituresen visitant lapage depermalien àpartir de l'onglet Paramètres?
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?
-
oui,j'aimis àjour lesparamètres despermaliens.Celane fonctionnaittoujourspas.J'ai également utilisé un autre slugpour la réécritureet j'aieu lemêmeproblèmeyes, 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: d'accord,vous devrezmontrer votre codepour obtenir de l'aide.@Godforever: okey, you will need to show your code to get further help.
- 0
- 2012-06-23
- Sisir
-
- 2013-10-22
Tout d'abord,assurons-nous debien comprendre la hiérarchie desmodèles . Pour untype depublicationnommé coupon avec
'has_archive' => true
et unetaxonomienommée coupon-tag (suivant les conseils de @ Sisir),tous deux définis surpublic,- /coupon/utilisera archive-coupon.php,archive.php ouindex.php,selon ce qui setrouve dans cet ordre
- /coupon-tag/foo/utiliserataxonomy-coupon-tag-foo.php,taxonomy-coupon-tag.php,taxonomy.php,archive.php ouindex.php,selon ce quiesttrouvéen premier dans cet ordre . Notez que archive-coupon.phpn'estpas dans cette liste (c'est uneerreur courante).
- home.phpne sera utilisé quepour lapage d'accueil
Ensuite,
tag
est unmot spécialet vous rencontrerez des conflits de réécritureen utilisant cela comme votre slug. Vous devriez utiliser autre chose.Enfin,vider vos réécrituresesttrèsimportantici,et vous devez vous rappeler de lefaire aprèstoutemodification de l'un des codespertinents (toutemodification du CPT ou de lataxonomie). Lemoyen leplus simple de lefaireest d'accéder à Paramètres & rarr; Permalienset cliquez sur "Enregistrer lesmodifications".
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".
J'ai unproblème similaire à celui-ci: Modèle detype demessagepersonnalisé - Archive
J'ai untype depublicationpersonnalisé WordPress appelé
coupon
. J'essaie de lui attribuer lemodèleen utilisantarchive-coupon.php
,maisil va directement danshome.php
.J'ai également unetaxonomiepersonnalisée de ce CPT appelée
tags
avec larewrite rule => "tag"
Ainsi,lorsqueje vais à une URL comme celle-ci -http://mysite.com/tag/3d
je veux voir unmodèlepersonnalisépourmontype depublicationpersonnalisé ougénéralpour lestaxonomies.J'ai égalementessayé lemodèle
taxonomy.php
maisil l'ignoretoujours. Quelpourrait être leproblème?Mise àjour -
Jene saispas ce qui s'est réellementpassé. Mais avant cela,j'avais unmodèle appelétaxonomy-store.php. Ainsi,quandje l'ai renommé sous un autrenom,la
tag
detaxonomie a commencé à utiliser lefichier demodèletaxonomy.php
. Etencorearchive-coupon.php
ne fonctionnepas.