Cela ne devrait-il pas être facile?! Type de message personnalisé / lien permanent de taxonomie personnalisée
-
-
Par curiosité,qu'avez-vousessayéjusqu'àprésent?Out of curiosity, what have you tried so far?
- 0
- 2012-01-30
- Matthew Boynes
-
Cette réponsem'a leplus rapproché - http://wordpress.stackexchange.com/questions/5308/custom-post-types-taxonomies-and-permalinks -mais celan'apasfonctionné avec lapaginationet leplugin suggérén'apasfonctionnéSoitThis answer got me the closest - http://wordpress.stackexchange.com/questions/5308/custom-post-types-taxonomies-and-permalinks - but then it didn't work with pagination and the suggested plugin didn't work either
- 0
- 2012-01-30
- fxfuture
-
Cool,content d'avoir demandé,celam'afaitgagner dutemps!Cool, glad I asked, that saved me some time!
- 0
- 2012-01-30
- Matthew Boynes
-
1 réponses
- votes
-
- 2012-01-30
Suivez les conseils sur cette question comme vous l'avez déjàfait,mais ajoutez ceci à votre code:
add_action( 'generate_rewrite_rules', 'fix_literature_category_pagination' ); function fix_literature_category_pagination( $wp_rewrite ) { unset($wp_rewrite->rules['literature/([^/]+)/page/?([0-9]{1,})/?$']); $wp_rewrite->rules = array( 'literature/?$' => $wp_rewrite->index . '?post_type=literature', 'literature/page/?([0-9]{1,})/?$' => $wp_rewrite->index . '?post_type=literature&paged=' . $wp_rewrite->preg_index( 1 ), 'literature/([^/]+)/page/?([0-9]{1,})/?$' => $wp_rewrite->index . '?literature_category=' . $wp_rewrite->preg_index( 1 ) . '&paged=' . $wp_rewrite->preg_index( 2 ), ) + $wp_rewrite->rules; }
Enfin,allez dans Paramètres> Permalienset appuyez sur Enregistrer. Si celane fonctionnetoujourspas,enregistrez ànouveau vospermaliens. Parfois,j'ai l'impression que vous devez les sauver deuxfois,mais qui sait. Bref,dis-moi commenttute débrouilles. Notez que la réponse standardn ° 1en informatique s'applique: Çamarchepourmoi ... ;-)
Dupays de TMI ...
Pour référence,la raison pour laquelle lespagesne fonctionnentpaspar défautest que WordPressmet enplace une règle de réécriturepour la littérature/% literature_category%/%book%/%page%,ce quifait letotal sens si vous ypensez. Ainsi,vospermalienspar défaut ont ces règles concurrentes dans cet ordre:
[literature/([^/]+)/([^/]+)(/[0-9]+)?/?$] => index.php?literature_category=$matches[1]&book=$matches[2]&page=$matches[3] [literature/([^/]+)/page/?([0-9]{1,})/?$] => index.php?literature_category=$matches[1]&paged=$matches[2]
Tout ce quenousfaisons vraimenticiest de changer l'ordre de ceux-cien désactivant ce dernier (nouspouvons legarder,mais chaque réécriturepar la suite a une autreexpression régulière àexécuter au chargement de lapage)et en l'ajoutant au début de latableau.
Fait amusant: Sijamais vous avez une "page"intitulée "livre"et qu'elle comporteplusieurspages,cet ordre seraen conflitet sespages suivantesne fonctionnerontpas!
Follow the advice on this question as you did already, but add this to your code:
add_action( 'generate_rewrite_rules', 'fix_literature_category_pagination' ); function fix_literature_category_pagination( $wp_rewrite ) { unset($wp_rewrite->rules['literature/([^/]+)/page/?([0-9]{1,})/?$']); $wp_rewrite->rules = array( 'literature/?$' => $wp_rewrite->index . '?post_type=literature', 'literature/page/?([0-9]{1,})/?$' => $wp_rewrite->index . '?post_type=literature&paged=' . $wp_rewrite->preg_index( 1 ), 'literature/([^/]+)/page/?([0-9]{1,})/?$' => $wp_rewrite->index . '?literature_category=' . $wp_rewrite->preg_index( 1 ) . '&paged=' . $wp_rewrite->preg_index( 2 ), ) + $wp_rewrite->rules; }
Lastly, go to Settings > Permalinks and hit save. If it still doesn't work, save your permalinks again. Sometimes I feel like you have to save 'em twice, but who knows. Anyway, Let me know how you make out. Note that Computer Science Standard Answer #1 applies: It Works For Me... ;-)
From the land of TMI...
For reference, the reason why the pages don't work by default is that WordPress puts in a rewrite rule for literature/%literature_category%/%book%/%page%, which makes total sense if you think about it. So your default permalinks have these competing rules in this order:
[literature/([^/]+)/([^/]+)(/[0-9]+)?/?$] => index.php?literature_category=$matches[1]&book=$matches[2]&page=$matches[3] [literature/([^/]+)/page/?([0-9]{1,})/?$] => index.php?literature_category=$matches[1]&paged=$matches[2]
All we're really doing here is changing the order of these by unsetting the latter (we can keep it in, but then every rewrite thereafter has one more regex to run on page load) and adding it to the beginning of the array.
Fun fact: If you ever have a "book" entitled "page" and it has multiple pages, this order will conflict and its subsequent pages won't work!
-
Gosh,ilm'est venu à l'esprit quema syntaxe étaiterronéeici.Assez drôle,celafonctionnepourmoiet quandje le répare,celane fonctionnepas.Je vais continueret mettre àjourma réponse quandje la découvrirai ...Gosh, it just occurred to me that my syntax was wrong here. Funny enough, it works for me and when I fix it, it doesn't work. I'll keep at it and update my answer when I figure it out...
- 0
- 2012-01-30
- Matthew Boynes
-
Mercipour votre aide Matthew.J'aiessayéet malheureusement celan'apasfonctionné.J'ai ajoutéplus d'informations àma question,ce qui,espérons-le,l'expliquemieux!Thanks for your help Matthew. I tried that and unfortunately it didn't work. I've added more information to my question which hopefully explains it better!
- 0
- 2012-01-30
- fxfuture
-
Et si cela aide aussi,voici un lien vers le site - http://bit.ly/xvclETAnd if it also helps, here's a link to the site - http://bit.ly/xvclET
- 0
- 2012-01-30
- fxfuture
-
Ok,mesexcusespour la confusion.Il y avait unpeu degaz cérébral là-bas (il devait y avoir des haricots cérébraux récemment).Ma réponse a étémise àjouret,encore unefois,celafonctionnepourmoi.N'oubliezpas de sauvegarder vospermaliens.Ok, my apologies for the confusion. Had a little brain gas there (must have had some brain beans recently). My answer has been updated, and again it works for me. Remember to save over your permalinks.
- 1
- 2012-01-30
- Matthew Boynes
-
Ne semblepasfaire de différence avec la structure dupermalien :(Doesn't seem to make any different to the permalink structure :(
- 0
- 2012-01-30
- fxfuture
-
Oh ok,j'ai vu votre questionmise àjour.Cen'est doncpas que/literature/fiction/page/2ne fonctionnepas,c'est que/literature/page/2ne fonctionnepas,n'est-cepas?Si c'est le cas,c'est une solutionfacile,nousferons lamême chose d'unniveauOh ok, I saw your updated question. So it's not that /literature/fiction/page/2 doesn't work, it's that /literature/page/2 doesn't work, is that right? If so, that's an easy fix, we'll do the same thing up a level
- 1
- 2012-01-30
- Matthew Boynes
-
Merciencore Matthew.Oui,la littérature/page/2ne fonctionnepas.Cependant,votre réponsemise àjourne fonctionnepasnonpluset mon cerveauestencoreplusfrit!Mataxonomie littéraire s'appelle «littérature_catégorie»mais la réécritureest «littérature» selon cette réponse sur laquelleje travaillais.Anoter égalementmysite.com/literatureest unepage appelée literature.php oùilinterroge letype demessage «littérature».Hmmmje me sens vraimentperdu!Thanks again Matthew. Yes, literature/page/2 doesn't work. However, your updated answer isn't working either and my brain is getting even more fried! My literature taxonomy is called 'literature_category' but the rewrite is 'literature' as per that answer I was working from. Also to note mysite.com/literature is a page called literature.php where it queries the post type 'literature'. Hmmm I'm feeling really lost!
- 0
- 2012-01-30
- fxfuture
-
laissez-nous [continuer cette discussion dans le chat] (http://chat.stackexchange.com/rooms/2336/discussion-between-matthew-boynes-and-fxfuture)let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/2336/discussion-between-matthew-boynes-and-fxfuture)
- 1
- 2012-01-30
- Matthew Boynes
-
Fonctionneparfaitement sur le site,saufpour unproblèmemineur ... J'utilise Breadcrumb Nav XT,et maintenant 'Literature' dans lefil d'Ariane des liens versmysite.com/literature/%literature_category%/générant unemauvaiseerreur de requêteWorking perfectly on the site, except for one minor issue... I'm using Breadcrumb Nav XT, and now 'Literature' in the breadcrumb trail links to mysite.com/literature/%literature_category%/ generating a bad request error
- 0
- 2012-01-30
- fxfuture
-
Correction du changement dumodèle defil d'Ariane lié à
Littérature :) Fixed by changing the linked breadcrumb template to Literature :)- 0
- 2012-01-30
- fxfuture
-
Jene pensepas que vous deviez cliquer sur lebouton Enregistrer sur lapage Paramètres du lienpermanent.Le simplefait de visiter lapage videra les règles de réécriture.I don't think you need to click the Save button on the Permalink Settings page. Just visiting the page will flush the rewrite rules.
- 0
- 2012-10-30
- Ian Dunn
Donc,celame rend complètementfou. J'aipassé desjours àessayer de résoudre ceproblèmeet jene peuxpas comprendrepourquoi c'est si difficile car c'est sûrement une structure depermalientrès courante!
J'aiparcouru des centaines de réponseset demessageset aucun d'entreeuxne semble résoudre leproblème.
Je veux simplement cette structure:
Je réalise donc ce qui suit:
Chaquefois quej'essaye quelque chose,j'obtiens deserreurs 404 ou lapagninationne fonctionnepas.
Jene comprendspaspourquoi c'est si difficile!
Toute aide vraiment appréciée!
Merci
======================================================= ================== INFORMATIONS COMPLÉMENTAIRES ==================
Actuellement,j'enregistre letype depublicationet lataxonomie comme suit:
Sije m'inscris les deuxen tant que «littérature»,j'obtiens un 404 sur lapagemysite.com/literaturemais cela affichemonpermalien sous laforme:
mysite.com/literature/books/mybook
Après avoir suivi les conseils sur cette question - Types d'articlespersonnalisés,taxonomieset permaliens
J'ai ajouté ceci àmesfonctions:
Etj'ai changémontype demessageen
'slug' => 'literature/%literature_category%'
Etj'ai changémataxonomieen'slug' => 'literature'
Celafonctionnetrèsbien sauf que sur
mysite.com/literature
lapaginationne fonctionnepas doncj'obtiens uneerreur 404 sur l'url suivante:mysite.com/literature/page/2/