Cómo arreglar el error 404 en la paginación con enlaces permanentes personalizados

Si utilizas enlaces permanentes personalizados del tipo /%category%/%postname%/ es posible que al tratar de acceder a la paginación de tu WordPress, a https://tusitio.es/page/2/ y sucesivas, recibas un error 404.

Este es un error que viene ocurriendo desde la versión 2.7 de WordPress, y aún hoy en día ocurre más de lo razonable al acceder a la paginación de la web, da igual el tema.

Esto pasa más de lo que yo pensaba pero, como todo en WordPress, tiene una o varias posibles soluciones.

Cambia de enlaces permanentes

La primera solución es obvia, cambiar la estructura de enlaces permanentes.

Pásate por el escritorio de tu WordPress y en Ajustes > Enlaces permanentes, cambia de la estructura personalizada actual a «Nombre de la entrada»

Entiendo que no siempre podrás hacer este cambio, por temas de SEO principalmente, pero te recomiendo al menos hacer la prueba.

Cambia de estructura como te digo y prueba a ver si ya funciona la paginación. Luego, si puedes hacer el cambio de enlaces permanentes perfecto, te quedas con esta estructura y realizas las redirecciones 301 o regex que hagan falta para no perder posicionamiento.

Borrar el .htaccess

También, en ocasiones, puede que no se esté haciendo correctamente la escritura de enlaces permanentes desde el servidor. Para comprobarlo nada más fácil que borrar el archivo .htaccess actual (estará en la carpeta raíz donde está instalado WordPress).

A continuación ve al escritorio de WordPress, a Ajustes > Enlaces permanentes,  y guarda cambios sin tocar ningún ajuste.

Usa una función que corrija el error de paginación

Si nada de lo anterior funciona, o no puedes aplicarlo, el siguiente código arreglará el problema en el 99% de los casos.

function ayudawp_custom_pre_get_posts( $query ) {
if( $query->is_main_query() && !$query->is_feed() && !is_admin() && is_category()) {
    $query->set( 'paged', str_replace( '/', '', get_query_var( 'page' ) ) );  }  }

add_action('pre_get_posts','ayudawp_custom_pre_get_posts');

function ayudawp_custom_request($query_string ) {
     if( isset( $query_string['page'] ) ) {
         if( ''!=$query_string['page'] ) {
             if( isset( $query_string['name'] ) ) { unset( $query_string['name'] ); } } } return $query_string; }

add_filter('request', 'ayudawp_custom_request');

Añade el código al final del archivo functions.php del tema activo o a tu plugin de personalizaciones varias, guarda los cambios y casi seguro que se arregla.

O, si lo prefieres, también en plugin

 

Si no te ha funcionado alguno de los primeros consejos y no te atreves con el código, entonces igual prefieres hacerte con un plugin que corrija el problema solo con instalarlo y activarlo.

En caso de que sea esto lo que prefieras en este enlace puedes hacerte con el plugin.

No hay misterios, en la misma página se explica como instalarlo, pero es como cualquier otro plugin de WordPress.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(4 votos, promedio: 4.8)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

3 comentarios en “Cómo arreglar el error 404 en la paginación con enlaces permanentes personalizados”

  1. rodrigojavier

    Buenas noches:
    Les comento que yo quería hacer una migración de un servidor que tenía en una instanacia ec2 a otra,
    El respaldo lo hice con el plugin UpdraftPlus y al momento de querer restaurarlo en el nuevo servidor me manda muchos errores 404, por lo tanto me regresé a mi servidor original, sin embargo:

    Aún así no he podido restaurar mi sitio ya que, ya habia borrado mi servidor, pero mantuve la ip publica con la que fue creada.
    Adicional a esto:
    Ya hice lo del archivo .htacces (validé la sintaxis de dos formas,1.- borrando el contenido y yendo a enlaces permanentes, ponerle primero en simple y guardar, posteriormente en nombre de la entrada con /%postname%/, para que se genere solito el .htacces, 2.- copiando y pegando el código que brinda la página oficial de wordpress.
    *como ya lo mencioné ya realicé también el tema de links permanentes
    * Valide el tema de permisos en mis carpetas.
    * Validé que en mi base de datos etuviera el total de tablas que debiera estar y si lo está
    *Reinstalé PHP, MYSQL, APACHE y WORDPRESS como 4 veces de diferentes formas, y aún así no ha quedado
    * Asisti a salud del sitio y validé qué problemas identifica y solucioné los criticos
    Cabe mencionar que solamente es una sección que está ligada a varias páginas y por eso mismo genera los 404 not found, validé en la base de datos, y si hay registros asociados a la liga declarada justo como está en la página.

    *Para restaurar lo que hice, fue después de las instalaciones, copié mis directorios (Plugin, themes, others, upload, en wp-content
    * Cree mi base de datos y la restauré con comando y genera el total de tablas esperadas

    Ya no sé qué más!!!

    Necesito de su ayuda.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido