Problema de paginación 404 en WordPress con /page/2 - ¿qué hacer?

24 nov 2015, 14:05:24
Vistas: 100K
Votos: 22

Me encontré con el problema de paginación 404 en /page/2 y traté de encontrar una solución. He leído algunas sugerencias, pero aún no me han ayudado.

Funcionando: http://pandasnacozinha.com.br/bolos-doces-e-sobremesas/

No funciona: http://pandasnacozinha.com.br/bolos-doces-e-sobremesas/page/2/

He estado tratando de resolver esto durante horas. Entiendo que WordPress asume que "page" es una entrada de la categoría "bolos, doces e sobremesas" ya que mi estructura de enlaces permanentes es /%category%/%postname%/ pero no sé cómo solucionarlo.

6
Comentarios

¿Estás ejecutando tu propia consulta en la plantilla? Esto suele ocurrir cuando sobrescribes incorrectamente la consulta en la plantilla para cambiar posts_per_page o algún otro parámetro de la consulta.

Milo Milo
24 nov 2015 19:20:49

No recuerdo haber modificado ni una sola línea de código. ¿Cómo podría verificar esto?

Giovanna Coppola Giovanna Coppola
24 nov 2015 19:22:10

Si no has modificado el tema y el problema persiste con todos los plugins desactivados, entonces deberías preguntarle a la persona que creó el tema.

Milo Milo
24 nov 2015 19:26:30

Gracias por tu tiempo, Milo. Simplemente instalé un plugin que resolvió el problema. Responderé esta pregunta y proporcionaré el enlace.

Giovanna Coppola Giovanna Coppola
27 nov 2015 21:48:50

Simplemente cambiando el parámetro de paginación de "paged" a "page" solucionó el problema en mi caso.

user54002 user54002
17 mar 2020 15:27:31
Mostrar los 1 comentarios restantes
Todas las respuestas a la pregunta 13
8
31

Tuve el mismo problema y me di cuenta de que en el argumento 'posts_per_page = 6' y en 'Settings/Reading' en 'options-reading' de WordPress, tenía configurado 10. Cuando puse todo con el mismo valor (6 en mi caso) todo volvió a funcionar correctamente.

10 mar 2018 16:56:03
Comentarios

Salvavidas @jeferson, gracias

Ana DEV Ana DEV
28 abr 2020 09:06:02

@Jeferson Padilha ¡¡¡esto funcionó perfectamente!!!

Alejo_Blue Alejo_Blue
19 ene 2021 21:57:10

¿Dónde se configura posts_per_page?

Keyslinger Keyslinger
3 mar 2021 07:52:05

Esta publicación me inspiró y encontré el problema de por qué está sucediendo. ¡Me salvaste el día!

Felix H. Felix H.
9 jun 2022 13:27:48

Esto lo resolvió por completo para mí. Todavía no entiendo el problema. Mi 'posts_per_page' personalizado está establecido en 9.

Kalnode Kalnode
31 oct 2022 14:43:26

@Keyslinger En un tema personalizado

Kalnode Kalnode
31 oct 2022 14:43:44

Gracias, esto solucionó mis problemas.

Diaz Adhyatma Diaz Adhyatma
28 abr 2023 14:43:18

Gracias, me salvaste el pellejo.

S1awek S1awek
18 jul 2024 17:07:25
Mostrar los 3 comentarios restantes
4
26

En mi caso con enlaces personalizados: /%categoría%/%nombrepost%/ Tuve un problema con: /noticias/pagina/2/

Y finalmente esto funcionó para mí (agregar al archivo 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');
6 dic 2018 17:48:44
Comentarios

Gracias, hombre. Fue realmente útil.

Shehroz Ahmed Shehroz Ahmed
20 mar 2021 21:14:38

Brillante. Funcionó a la perfección. ¡Gracias!

lStoilov lStoilov
2 sept 2021 10:50:58

Acabo de tener exactamente el mismo caso - parece un gran descuido permitir personalizar la estructura de los enlaces permanentes y no dar ninguna pista a los usuarios de que podrían tener que sobrescribir las reescrituras manualmente... ¿O quizás es más bien un error y no debería ser necesario?

Sarah Groß Sarah Groß
22 nov 2021 15:43:16

Al estilo típico de WordPress, no tengo idea de por qué esto funciona, pero funciona

MrCarrot MrCarrot
15 jul 2024 20:13:01
3
16

Probé durante varias horas, hasta que encontré una solución funcional en este artículo.

En tu archivo functions.php, añade:

/**
 * Corrige la paginación en páginas de archivo
 * Después de agregar una regla de reescritura, ve a Ajustes > Enlaces permanentes y haz clic en Guardar para limpiar la caché de reglas
 */
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');

Reemplaza blog con el nombre de tu categoría en el código anterior.

Después de agregar este código, asegúrate de ir a Ajustes > Enlaces permanentes y hacer clic en Guardar para limpiar la caché de reglas, de lo contrario la regla no se aplicará.

¡Espero que esto ayude!

17 jul 2018 14:11:13
Comentarios

Esto funcionó para mí. Todavía me encantaría saber el 'por qué' de este comportamiento que apareció de la nada. Pero gracias por la solución.

dashard dashard
26 abr 2019 22:49:21

¡Gracias! ¿Por qué este error todavía existe en 2020?

skywind skywind
18 dic 2020 00:40:34

@skywind es 2024 y sigue ahí lol

khandaniel khandaniel
22 oct 2024 11:05:12
1

Encontré que cambiar la estructura de los enlaces permanentes funcionó para mí, mira:

El enlace permanente tenía esta estructura personalizada: /index.php/%year%/%monthnum%/%day%/%postname%/

Luego lo cambié a: Día y nombre (solo seleccioné el botón de radio) y quedó así: /%year%/%monthnum%/%day%/%postname%/

¡Probé esto y funciona!

16 ago 2017 05:36:11
Comentarios

Descubrí que simplemente cargando la página del enlace permanente resolvió el problema

jerrygarciuh jerrygarciuh
11 may 2019 00:09:33
0

Mi solución consta de 3 pasos:

1- El primero: Instalar este plugin: https://wordpress.org/plugins/category-pagination-fix/

2- Luego: Adapta tu código con esta estructura

<?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; // necesitamos un número improbable
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- Ve a los ajustes de WordPress > Lectura > Número máximo de entradas por página del blog luego ingresa el número 1

19 ene 2019 12:50:41
0

Como otros han mencionado, asegúrate de que tu 'posts_per_page = 6' sea igual o menor que la configuración en WordPress > Ajustes > Lectura > "Las páginas del blog muestran como máximo".

Recientemente me encontré con este problema y el problema era que controlaba completamente el número de publicaciones por página desde el archivo de plantilla. Si no hay suficientes publicaciones para la última página, generará un error 404.

Por ejemplo. Tengo mis publicaciones por página configuradas en 9, pero tenía 25 publicaciones. La página 1 y 2 funcionaban, pero la página 3 daba error 404. Configuré el ajuste de WordPress en 1 y dejé mi archivo de plantilla en 9, y ahora funciona como se esperaba.

31 ene 2019 23:14:45
0

En mi caso, usando Divi y el plugin PageNavi, la razón por la que estaba obteniendo el error 404 era que la plantilla de página (archive en mi caso) estaba obteniendo el parámetro de consulta paged usando get_query_var( 'paged' ), cuando en realidad lo que tenía que hacer era usar la variable global como se muestra a continuación:

<?php
/*
Template Name: Archivos
*/
get_header(); ?>

<?php

    // $paged es una variable global proporcionada por el tema
    global $paged;

    $args = array(
        'posts_per_page' => 4, 
        'post_type' => 'axis',
        'paged' => $paged,
    );

    $myposts = new WP_Query($args);
?>

<div div style="width: 50%; margin: 0 auto;">

    <?php while ( $myposts->have_posts() ) : $myposts->the_post(); ?>

            <div class="media-body">
                <?php the_content(); ?>
            </div>


    <?php endwhile; wp_reset_postdata(); ?>

    <?php wp_pagenavi( array( 'query' => $myposts ) ); ?>

</div>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

Este código corrigió los enlaces y resolvió el formato de publicaciones nombre-del-post/pagina/N. La configuración de enlaces permanentes está establecida como "Nombre de la entrada", es decir http://localhost/ejemplo-de-publicacion/

20 jul 2019 21:45:48
0

En mi caso, tenía esto en un bucle:

if (is_category()) $args['posts_per_page'] = 8;

Y en Ajustes->Lectura tenía configurado 10 entradas por página para el blog y sindicación.

Cambié a 8 entradas por página en Ajustes->Lectura y ahora el error 404 desapareció y todo parece funcionar.

No tengo idea de por qué, pero probablemente esto pueda ayudar a alguien en el futuro.

18 mar 2020 00:24:40
0

Aquí hay una generalización de la respuesta de kregus que corrige todas las categorías de una vez:

/**
 * Corrige la paginación en páginas de archivo
 */
function my_pagination_rewrite() {
    $categories = '(' . implode('|', array_map(function($category){return $category->slug;}, get_categories())) . ')';
    add_rewrite_rule($categories . '/page/?([0-9]{1,})/?$', 'index.php?category_name=$matches[1]&paged=$matches[2]', 'top');
}
add_action('init', 'my_pagination_rewrite');
22 ago 2020 07:10:49
0

Para aquellos que están usando WooCommerce; yo estaba buscando lo mismo y descubrí que WooCommerce cambia el posts_per_page para las categorías de productos. Consulta: https://woocommerce.com/document/change-number-of-products-displayed-per-page/

Usando el filtro de WooCommerce:

/**
 * Cambiar el número de productos que se muestran por página (página de tienda)
 */
add_filter( 'loop_shop_per_page', 'wc_update_loop_shop_per_page', 20 );

function wc_update_loop_shop_per_page( $cols ) {
  // $cols contiene el número actual de productos por página basado en el valor almacenado en Opciones → Lectura
  // Retorna el número de productos que deseas mostrar por página.
  $cols = 9;
  return $cols;
}

En mi caso, cambié el $cols a 12 y luego la paginación volvió a funcionar correctamente.

20 abr 2023 16:53:50
0

Yo también tuve este problema, probé todas las demás soluciones en esta página y nada funcionó. En mi caso, fue causado por tener la 'Base de categoría' igual que el permalink de mi página de blog.

Por ejemplo, el permalink de mi página de blog era 'articulos' y también tenía configurada la 'Base de categoría' (en Ajustes > Enlaces permanentes) como 'articulos'. Cambiar la 'Base de categoría' a otra cosa solucionó los errores 404.

19 may 2023 16:18:05
1
-1

Estoy recibiendo el error 404 cuando regreso a la URL con /page/2/.... Así que voy a mi página de error 404 de WordPress y agrego este código JavaScript en la parte superior de la página de error:

<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
   var getreurl = window.location.href;
   if(getreurl != ""){
     var res = getreurl.split("/?");
       if(res[1] != ""){
         var resd = "http://www.yourwebsite.com/list/?"+res[1];
         window.location = resd;
     }
 }
 </script>

Cuando regreso a la página 404, recoge la URL, analizo la URL y obtengo la cadena de URL que necesito, luego reconstruyo un nuevo enlace y redirecciono al nuevo enlace reconstruido.

19 ene 2017 09:28:24
Comentarios

Una solución basada en JS aún dará un error 404 a Google/Facebook, etc. No hay razón para no ejecutar este tipo de código en el lado de PHP.

Mark Kaplun Mark Kaplun
19 ene 2017 09:43:18
2
-3

¡Encontré la solución!

Instalar este plugin resolvió el problema: https://wordpress.org/plugins/category-pagination-fix/

También tuve que hacer cambios en Ajustes > Lectura para mostrar menos de 10 publicaciones por página (ahora muestro 6 publicaciones por página, pero cualquier número menor a 10 debería funcionar).

Espero que les funcione a todos. :)

27 nov 2015 21:53:35
Comentarios

¿un plugin obsoleto que soluciona un problema específico con WordPress que fue resuelto en el núcleo hace 6 años? difícilmente esta sea una buena respuesta

Mark Kaplun Mark Kaplun
20 ago 2017 08:03:07

El plugin era por defecto un no para mí, ¡pero me guiaste en la dirección correcta con el cambio en Ajustes! ¡Gracias!

daneczech daneczech
21 mar 2018 18:21:35