Archive de type de publication personnalisée avec pagination?
-
-
Je suppose que vous avez un conflit dans vos règles de réécriturepour votretype depublicationpersonnaliséet votrepage.Pouvez-vousessayer [monplugin d'analyse de réécriture] (http://wordpress.stackexchange.com/questions/3606/a-tool-to-analyze-rewrite-rules/3608#3608)et dites-moi ce que vous obtenezpour l'URL `projets/page/2/`?Cela devrait être `pagename=projects`et`paged=2`,pas `projects=page/2/`.(Utilisez `@ Jan` lorsque vous répondez dans un commentaireet queje reçois unenotification.)I guess you have a conflict in your rewrite rules for your custom post type and your page. Can you try [my Rewrite analyzer plugin](http://wordpress.stackexchange.com/questions/3606/a-tool-to-analyze-rewrite-rules/3608#3608) and tell me what you get for the URL `projects/page/2/`? It should be `pagename=projects` and `paged=2`, not `projects=page/2/`. (Use `@Jan` when you reply in a comment and I get a notification.)
- 0
- 2011-02-17
- Jan Fabry
-
Merci @Jan.Jene saispastrop commentje suis censé répondre,alorsj'aipris une capture d'écran: http://img836.imageshack.us/img836/2760/rewrite.gifThanks @Jan. I'm not sure how I'm supposed to answer so I took a screenshot: http://img836.imageshack.us/img836/2760/rewrite.gif
- 0
- 2011-02-17
- J82
-
C'estgénial,et c'est leproblème queje soupçonnais.Maispas deproblème,nouspouvons le résoudre.Ilfaudra attendre demainpourmoi,ilesttardiciet jetape ceci surmontéléphone.Est-ce déjà WP 3.0 ou 3.1?That's great, and it's the problem I suspected. But no problem, we can solve it. It will have to wait till tomorrow for me, it's late here and I'm typing this on my phone. Is this WP 3.0 or 3.1 already?
- 0
- 2011-02-17
- Jan Fabry
-
@Jan Super!C'est uneexcellentenouvelle.Oui,j'utilise la dernière version 3.0.5.Merci de votre aide!@Jan Great! That is great news. Yes, I'm running the latest 3.0.5. Thank you for your help!
- 0
- 2011-02-17
- J82
-
2 réponses
- votes
-
- 2011-02-18
Comme vouspouvez le voir dans l'analyseur de réécriture,
/projects/page/2/
définitprojects=page&page=/2
au lieu depagename=projects&paged=2
comme on le voudrait.Il vous suffit donc d'ajouter une règle de réécriturepour ce casparticulier (dans lafonctionregister_projects()
,après avoirenregistré votretype depublicationpersonnalisé,ce serait unbonendroit):add_rewrite_rule( 'projects/page/([0-9]+)/?$', 'index.php?pagename=projects&paged=$matches[1]', 'top' );
N'oubliezpas de vider vos règles de réécriture,en visitant lapage Permaliens ou d'une autremanière.
As you can see in the rewrite analyzer,
/projects/page/2/
setsprojects=page&page=/2
instead ofpagename=projects&paged=2
as we would like. So you just need to add a rewrite rule for this special case (in theregister_projects()
function, after you register your custom post type, would be a good place):add_rewrite_rule( 'projects/page/([0-9]+)/?$', 'index.php?pagename=projects&paged=$matches[1]', 'top' );
Remember to flush your rewrite rules, by visiting the Permalinks page or by some other way.
-
Mercibeaucoup.Ça amarché!C'estpeut-être une question stupide,mais cela continuera-t-il àfonctionnerpour lespages 3,4,5,etc.?Deplus,sij'enregistre untype depublication différent à l'avenir,dois-je ajouter une règle de réécriture similaire?thank you so much. It worked! This may be a dumb question but will this continue to work for pages 3, 4, 5, etc? Also, if I register a different post type in the future, do I have to add a similar rewrite rule?
- 0
- 2011-02-18
- J82
-
@John: Le `[0-9] +` correspond à *n'importe quoi de 0-9 * (`[0-9]`) *plusieursfois * (`+`),donc oui,celafonctionnerapour desnombresplus élevés.Si vous ajoutez denouveauxtypes depublication,vous devrez recommencerpour chaquetaxonomie.Cependant,si vous attendez unpeuplus longtempset que vouspouvez utiliser WordPress 3.1,vous devezenregistrer votretype depublicationpersonnalisé avec lenouvel argument `has_archive`,qui créera les archives sans que vous ayez à créer une"fausse "page avec unmodèle.@John: The `[0-9]+` matches *anything from 0-9* (`[0-9]`) *multiple times* (`+`), so yes, it will work for higher numbers. If you add new post types you will have to do this again for each taxonomy. However, if you wait a bit longer and can use WordPress 3.1, you should register your custom post type with the new `has_archive` argument, which will create the archives without you having to create a "fake" page with a template.
- 0
- 2011-02-18
- Jan Fabry
-
Merci,je garderai cela à l'esprit.J'espère qu'il y aura untutoriel sur lafaçon d'enregistrer destypes depublicationpersonnalisés avec l'argument `has_archive`.Vous sauvez la vie!Thank you I will keep that in mind. I hope there will be a tutorial on how to register custom post types with the `has_archive` argument. You're a life-saver!
- 0
- 2011-02-18
- J82
-
ok,merci -maisje ne l'aipas lu dans la question,j'avais compris,il cherchait unmoyen depagination avec lepluginpour lestypes depublicationpersonnaliséset jepense que lemeilleurmoyen car cepluginest unefonction debase.Mais c'est vrai,lapagination avec despermaliensn'estpasprête avec cettefonction.ok, thanks - but i dont read this in the question, i had understand, he search a way for an pagination with the plugin for custom post types and i think, the better way as this plugin is a core function. But it is right, the pagination with permalinks is with this function not ready.
- 0
- 2011-02-19
- bueltge
-
avec la sortie de la version 3.1,je n'aipaspum'empêcher de repenser à cette questionet à l'utilisation dunouvel argument `has_archive`.J'aiessayé d'ajouter `'has_archive'=>true` autableau d'arguments;cependant,mapage deprojetsmontrait lapage d'archive lorsqueje suis allé sur site.com/projects.Deplus,j'aiessayé `` has_archive '=>projects`et cela afait lamême chose.Jeme demande commentje peuxmettreen œuvre cela?with the release of 3.1, I couldn't help but think back to this question and the use of the new `has_archive` argument. I tried adding `'has_archive' => true` to the array of arguments; however, my projects page showed the archive page when I went to site.com/projects. Additionally, I tried `'has_archive' => projects` and that did the same thing. I'm wondering how I can implement this?
- 0
- 2011-02-23
- J82
-
- 2011-02-17
C'est unmeilleurmoyen,vous construisez votreproprepaginatin:
echo paginate_links(array( 'current' => 5, 'total' => 9, 'prev_text' => '« Prev' ));
ou via des solutionspersonnalisées,consultez ces 2 articles:
Its a better way, you build your own paginatin:
echo paginate_links(array( 'current' => 5, 'total' => 9, 'prev_text' => '« Prev' ));
or via custom solutions, see this 2 posts:
-
Je continue à vouloir recommander cettefonctionmoi-même,le seulproblèmeest que cen'estpas lafonction laplusfacile à comprendre (vous obtenezmon vote cependant,j'aimerais voir les utilisateurs utiliser cettefonctionbeaucoupplus,au lieu de choisir d'utiliserpagenavi).Petitenotepour les autres lisant,c'est lamêmefonction que vous verrez largement utilisée dans la zone d'administration de WordPress.I keep wanting to recommend that function myself, only problem is it's not the easiest function to make sense of(you get my vote though, i'd love to see users utilising this function alot more, instead of choosing to use pagenavi). Small note to others reading, it's the very same function you'll see used extensively throughout the WordPress administration area.
- 0
- 2011-02-17
- t31os
-
Maisje nepensepas que leproblèmeici soit de créer les liens denavigation,mais degérer l'URLentrante.Les deuxfonctionsgénérerontprobablement le lien `/projects/page/2/`,maisje doute que l'une d'ellesmodifie les règles de réécriturepour que celafonctionne.But I don't think the problem here is creating the navigation links, but handling the incoming URL. Both functions will probably generate the link `/projects/page/2/`, but I doubt any of them changes the rewrite rules to make it work.
- 0
- 2011-02-17
- Jan Fabry
-
Oui,je suistout àfaitpour créermaproprepagination,mais comme @Jan l'amentionné,les deuxfonctionsne génèrent-ellespas lemême lien? Jeme demande comment les autres ontgéré ceproblème.Certains ont signalé avoir changé lenom dutype depublicationen saforme singulière (parexemple,projet)touten conservant saformeplurielle (parexemple,projets)pour lenom de lapage.Cependant,sije change lenom dutype depublicationen singulier,cela se reflète dans l'url commeje l'aimentionné (parexemple,mysite.com/project/single-post) quigâche alors lapaginationpuisque l'url devrait êtremysite.com/projets/publication unique.Yes, I am all for creating my own pagination but as @Jan mentioned, won't both functions generate the same link?I'm wondering how others have handled this problem. Some have reported to have changed the name of the post type to its singular form (e.g. project) while keeping its plural form (e.g. projects) for the name of the page. However, if I change the name of the post type to singular, that gets reflected in the url as I mentioned (e.g. mysite.com/project/single-post) which then messes up the pagination since the url should be mysite.com/projects/single-post.
- 0
- 2011-02-17
- J82
-
Aufait,merci.J'ai suivi vos conseilsen utilisantpaginate_linkset jeme suis débarrassé depagenavi :)By the way, thank you. I've followed your advice in using paginate_links and have gotten rid of pagenavi :)
- 0
- 2011-02-20
- J82
J'ai untype demessagepersonnalisé appelé "projets" (pastebin )et j'ai unepage appelée Configuration deprojets dansmontableau debord quiest configurépour afficher lemodèle deprojets. (pastebin )
Leproblèmeest que lorsquej'utilise WP_PageNavipourincorporer lapaginationet queje clique sur lapage 2,j'obtiens uneerreur 404. J'ai lu quelquepart que c'estparce que lestypes d'articleset lespagespersonnalisésne peuventpas avoir lemêmenom. Etj'aitrouvé que c'était vraiparce quej'aiessayé de changer lenom de lapageen "Projets 2"et cela afonctionné.
Mais lorsqueje change lenom dutype depublicationpersonnalisé,cela se reflète dans l'URL. Donc,sije change letype depublicationpersonnaliséen 'projects2' au lieu dejuste 'projects',l'URL ressemblemaintenant à ceci:mysite.com/projects2/single-post
Aufait,mespermalienspersonnalisés sont définis sur/% category%/%postname%/.
Demême,je nepeuxpas changer lenom de lapageen "Projets 2"pour des raisonsesthétiques.
Alors,commentpourrais-je contourner cela? Celame rendfou depuis denombreuses heures. J'apprécierais vraimenttout conseil utile!