En algunas ocasiones los enlaces permanentes de WordPress dejan de funcionar de forma adecuada, llevando a páginas que no corresponden o bien, simplemente, a páginas que no existen.
La forma más sencilla de solucionar esto es ir a Ajustes -> Enlaces permanentes marcar “simple” y grabar; volver a seleccionar la estructura del enlace permanente que tuviéramos y grabar de nuevo.
Si con esto no se ha solucionado puede ocurrir que el contenido del archivo .htaccess se haya corrompido y lo mejor es copiarlo de nuevo:
# BEGIN WordPress
# Las directivas (líneas) entre `BEGIN WordPress` y `END WordPress` se generan dinámicamente
# , y solo se deberían modificar mediante filtros de WordPress.
# Cualquier cambio en las directivas que hay entre esos marcadores se sobreescribirán.
# BEGIN WordPress
RewriteEngine On RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Si aún así no se ha recuperado el funcionamiento normal y tenemos acceso directo a la base de datos, lo mejor es variar el campo de lo/s registros que guardan los enlaces permanentes en la base de datos. Para ello y suponiendo una instalación estándar de WP, buscaremos estos registros de la siguiente forma:
select option_id,option_name from wp_options where option_name like "%permalink%";
una vez tengamos sus IDs, iremos vaciando registro a registro su contenido:
update cp_options set option_value='' where option_id=[id-registro];
Finalmente, iremos al panel de administración de WP a la sección que ya he mencionado de enlaces permanentes y pulsaremos grabar. Así, se habrán generado de nuevo todos los enlaces y el sistema volverá a funcionar adecuadamente.