J'ai un type de message personnalisé appelé 'projets' ( Pastebin ) et une page intitulée Projets configurée dans mon tableau de bord, configurée pour afficher les projets. modèle. ( Pastebin )
Le problème, c’est que lorsque j’utilise WP_PageNavi pour incorporer la pagination et que je clique sur la page 2, j’obtiens une erreur 404. J’ai lu quelque part que c’est parce que les types de publications et les pages personnalisés ne peuvent pas avoir le même nom. Et j'ai trouvé que c'était vrai parce que j'ai essayé de changer le nom de la page en "Projets 2" et cela a fonctionné.
Mais lorsque je change le nom du type d'article personnalisé, cela se reflète dans l'URL. Donc, si je change le type de message personnalisé en 'projects2' au lieu de 'projets', l'url ressemble maintenant à ceci: mysite.com/projects2/single-post
Mes permaliens personnalisés sont définis sur /% category% /% postname%/en passant.
De même, je ne peux pas changer le nom de la page en "Projets 2" pour des raisons esthétiques.
Alors, comment pourrais-je contourner cela? Cela m'a rendu fou pendant de nombreuses heures. J'apprécierais vraiment tout conseil utile!
Comme vous pouvez le constater dans l'analyseur de réécriture, /projects/page/2/
définit projects=page&page=/2
au lieu de pagename=projects&paged=2
comme nous le souhaiterions. Il vous suffit donc d’ajouter une règle de réécriture pour ce cas particulier (dans la fonction register_projects()
, une fois que vous avez enregistré votre type de publication personnalisé, serait un bon endroit):
add_rewrite_rule( 'projects/page/([0-9]+)/?$', 'index.php?pagename=projects&paged=$matches[1]', 'top' );
N'oubliez pas de vider vos règles de réécriture en visitant la page Permaliens ou par un autre moyen.
C'est une meilleure façon, vous construisez votre propre paginatine:
echo paginate_links(array(
'current' => 5,
'total' => 9,
'prev_text' => '« Prev'
));
ou via des solutions personnalisées, voir ces 2 articles: