Je suis tombé sur le problème de pagination /page/2
404 et j'ai essayé de trouver une solution. J'ai lu des suggestions, mais cela n'a pas encore aidé.
De travail: http://pandasnacozinha.com.br/bolos-doces-e-sobremesas/
Ne fonctionne pas: http://pandasnacozinha.com.br/bolos-doces-e-sobremesas/page/2/
J'essaie de comprendre cela depuis des heures. Je comprends que WordPress suppose que "page" est un message de la catégorie "bolos, doces e sobremesas" puisque ma structure de lien permanent est /%category%/%postname%/
mais je ne sais pas comment le réparer.
Essayé plusieurs heures, jusqu'à ce que je trouve une solution de travail dans cet article .
Dans votre fichier functions.php
, ajoutez
/**
* Fix pagination on archive pages
* After adding a rewrite rule, go to Settings > Permalinks and click Save to flush the rules cache
*/
function my_pagination_rewrite() {
add_rewrite_rule('blog/page/?([0-9]{1,})/?$', 'index.php?category_name=blog&paged=$matches[1]', 'top');
}
add_action('init', 'my_pagination_rewrite');
Remplacez blog
par votre nom de catégorie dans le code ci-dessus.
Après avoir ajouté ce code, veillez à accéder à Settings > Permalinks
et à cliquer sur Save
pour vider le cache de règles, sinon la règle ne sera pas appliquée.
J'espère que cela t'aides!
J'ai eu le même problème et j'ai remarqué que, dans l'argument WordPress 'à lire les options' 'posts_per_page = 6'
et 'Settings/Reading
, j'avais la valeur 10.
J'ai trouvé que changer la structure de permalien fonctionnait pour moi, regardez:
Le permalien était comme ça dans la structure personnalisée: /index.php/%year%/%monthnum%/%day%/%postname%/
Puis je l'ai changée en: Jour et nom (il suffit de sélectionner le bouton radio) et cela ressemblera à ceci: /%year%/%monthnum%/%day%/%postname%/
J'ai essayé ça et ça marche!
Dans mon cas avec des liens personnalisés: /% category% /% postname%/J'ai eu un problème avec:/news/page/2 /
Et enfin, cela fonctionne pour moi (ajouter à functions.php):
function remove_page_from_query_string($query_string)
{
if ($query_string['name'] == 'page' && isset($query_string['page'])) {
unset($query_string['name']);
$query_string['paged'] = $query_string['page'];
}
return $query_string;
}
add_filter('request', 'remove_page_from_query_string');
ma solution est en 3 étapes:
1- le premier: Installer ce plugin: https://wordpress.org/plugins/category-pagination-fix/
2-alors: mach votre morue avec cette structure
<?php $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; ?>
<?php
$q=new wp_Query(
array(
"posts_per_page"=>10,
"post_type"=>"",
"meta_key"=>"",
"orderby"=>"meta_value_num",
"order"=>"asc",
"paged" => $paged,
)
);
while($q->have_posts())
{
$q->the_post();
?>
<li></li>
<?php
}
wp_reset_postdata();
?>
<div class="pagination">
<?php
global $q;
$big = 999999999; // need an unlikely integer
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $q->max_num_pages
) );
?>
</div>
3-aller dans le paramètre wordpress> lecture> le plus grand nombre de messages par page de blog puis entrée numéro 1