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:
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/
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.
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");
}
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
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.
¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores.
La entrada Remover el slug de la página padre en WordPress es un artículo reciente del sitio DecodeCMS.
0 Commentaires