• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Core / Remover el slug de la página padre en WordPress

Remover el slug de la página padre en WordPress

[ 25 enero 2022 ] [ Autor: Jhon Marreros Guzmán ][ Core - Intermedio] [ ]

funcionalidad mejoras

Suscríbete a DecodeCMS:  

Si tienes una estructura de páginas padre y páginas hijas o subpáginas, notarás que las urls de las subpáginas se basan en la página padre. En este artículo veremos cómo quitar el slug de la página padre de la url que se genera, lo haremos directamente a través de código.

 

Generalidades

Si tienes una estructura de páginas similar a la siguiente imagen:

Estructura ejemplo página padre y páginas hijos

 
La estructura de URL para una subpágina será en base a la página padre, por ejemplo:

https://dominio.com/grupo-ejemplo/mi-pagina-de-ejemplo/

 

Resultado Final

Sin embargo lo que queremos obtener es una URL que no tenga referencias de la página principal, es decir:

https://dominio.com/mi-pagina-de-ejemplo/
En la url anterior ya no aparece el texto «grupo-ejemplo», que es el slug de la página padre.

 

Código para cambiar la url

Antes de usar este código tienes que cambiar el enlace permanente de la página hija, puedes agregar un carater «_» delante por ejemplo, esto es debido a que si usas una parte del nombre inicial WordPress agregará igualmente el slug de la página padre.

Modificar slug de la subpágina agregar _ delante

 
Luego puedes agregar el siguiente código:


add_action('init', 'dcms_custom_rewrite_rule', 10, 0);
function dcms_custom_rewrite_rule() {
	$id_page = 2;
	$new_url='mi-pagina';
	add_rewrite_rule("^{$new_url}/?$","index.php?page_id={$id_page}","top");
}

Puedes agregar este código en el archivo functions.php de tu tema hijo en algún plugin de Snippets.

En el código anterior:

  • Se usa el Hook init que hace referencia a la función dcms_custom_rewrite_rule
  • Dentro de esta función hay dos variables que debes cambiar, la primera es el ID de la página
  • La otra variable es el nuevo texto para el slug
  • Con los valores de estas variables entonces se usa la función de WordPress add_rewrite_rule() para cambiar la url

Como parte final tienes que ir a Ajustes > Enlaces Permanentes y guardar, (no es necesario que hagas cambios en esta pantalla)

 

Conclusión

Como has podido comprobar, puedes cambiar las urls de las páginas hijas y remover el slug de la página padre, hemos visto como realizar esto de manera simple a través de código.

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Agregar el slug blog en las urls de las entradas de WordPressAgregar el slug blog en las urls de las entradas de WordPress
  • Eliminar el slug de la URL de un Custom Post TypeEliminar el slug de la URL de un Custom Post Type
  • Nonces en WordPress¿Qué son los Nonces en WordPress?
  • Eliminar Opciones de Pantalla en WordPressEliminar Opciones de Pantalla en WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (1 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Francisco Miguel Hernández Maldonado

    26 enero, 2022

    Muy buen artículo, como siempre, John. Una consulta ya no tanto a nivel de código sino a nivel de SEO, no habría algún tipo de penalización debido a modificar esa url aunque a nivel de estructura siga manteniendo la estructura padre-hijo.

    Un saludo y muchas gracias por tus artículos.

    • Jhon Marreros Guzmán

      26 enero, 2022

      Hola Francisco, ese artículo precisamente surgió por un pedido de un cliente que contrató una asesoría SEO. Lo que sucedió es que el cliente tenía ya posicionada la página hija, pero con la url que no incluía la página padre. Sin embargo por organización, cambió la estructura de páginas, es decir, de cara al SEO quería mantener la url anterior, pero para organización le servía una página padre.

      En conclusión, si ya tienes posicionada una página con una url directa, pero en algún momento la volviste subpágina, si que te puede servir este artículo.

      • Francisco Miguel Hernández Maldonado

        26 enero, 2022

        Muchas gracias John, perfecta la explicación como siempre y gracias por tus vídeos y aclaraciones. Felicidades por el trabajo.

      • Irving

        25 mayo, 2023

        Hola, como te afecta con el sitemap, ya que si se genera con yoast seo, te genera el URL original.?

        o eso no afecta?

        • Jhon Marreros Guzmán

          5 junio, 2023

          Hola, simplemente te genera la url sin la página padre

  2. Javier Tello

    14 julio, 2023

    Buenas Jhon,

    Primera vez que comento, pero en bastantes momentos me ha salvado tu contenido. De las webs con más valor único en el sector sin duda alguna. Brutal.

    Mi duda es: en mi caso tengo que hacer esto para unos 20 y pico artículos. ¿En este caso tendría que repetir el código por cada URL, o hay alguna manera de juntarlos en 1?.

    Saludos y muchas gracias.

    • Jhon Marreros Guzmán

      18 julio, 2023

      Hola, puedes abreviar leyendo un array de slugs de páginas, consultando con las funciones de WordPress todas las páginas que te interesan, una vez tengas los slugs si que podrías abreviar el código.

      • Javier Tello

        20 julio, 2023

        Buenas de nuevo,
        Con ayuda de mi hermano informático pude hacerlo. Aquí dejo el resultado probado por si alguien tenía mi misma necesidad:

        add_action('init', 'dcms_custom_rewrite_rule', 10, 0);
        function dcms_custom_rewrite_rule() {
        $id_paginas = array("1", "2");
        $url_paginas = array("url-ejemplo-1", "url-ejemplo-2");
        for ($contador = 0; $contador <= count($id_paginas.count); $contador++) {
        $id_page = $id_paginas[$contador];
        $new_url= $url_paginas[$contador];
        add_rewrite_rule("^{$new_url}/?$","index.php?page_id={$id_page}","top");
        }
        }

        Saludos.

        • Jhon Marreros Guzmán

          20 julio, 2023

          Hola Javier, gracias por el aporte 🙂

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Omnisend
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad SEO social woocommerce

Populares

Depurar código PHP en WordPress

Personalizar el formulario de login de WordPress

Insertar Font Awesome en WordPress

Añadir código de Google Tag Manager sin plugins en WordPress

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2026 Todos los derechos reservados