• 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 / Agregar el slug blog en las urls de las entradas de WordPress

Agregar el slug blog en las urls de las entradas de WordPress

[ 17 febrero 2022 ] [ Actualizado: 31 enero 2023 ]
[ Autor: Jhon Marreros Guzmán ][ Core - Intermedio] [ ]

funcionalidad optimización

Suscríbete a DecodeCMS:  

En este artículo veremos cómo agregar el slug de blog como parte de la url en WordPress, veremos dos formas de realizarlo, la primera a través de la configuración y para otros casos especiales veremos cómo hacerlo a través de código.

 

Resultado Final

Al final lo que queremos obtener es algo similar a lo que se muestra en la siguiente imagen:

Slug url blog resutado final

 

Opción 1- Usando la configuración de WordPress

Si tus entradas tienen asignada la categoría que quieres mostrar como parte de la url, es decir si tienes una categoría llamada blog, tal como es muestra en la siguiente imagen:

Selección categoría padre

 
Entonces lo único que tienes que hacer es una configuración en: Ajustes > Enlaces Permanentes, selecciona «Estructura personalizada» y luego agrega el código de categoría como parte de la url.

Enlace personalizado WordPress

 

Opcion 2 – Usando código

Si tus entradas no tienen asignada la categoría blog (ver la siguiente imagen), o si tienes algún Custom Post Type que entra en conflicto con la configuración de urls, entonces puedes evaluar agregar el slug de «blog» directamente a través de código.

Subcategoría seleccionada, la categoría padre no esta seleccionada

 

Asegúrate primero de tener las urls permanentes configuradas en «Nombre de la Entrada», tal como se muestra en la siguiente imagen:

Nombrer de la entrada configuración enlaces permanentes WordPress

 
El siguiente código sólo tiene efecto en las entradas, agregando el slug blog en la url cuando se consulta una entrada individual.


En el código anterior:

  • Usamos el hook generate_rewrite_rules para agregar nuevas reglas de sobrescritura, estas incluyen la nueva estructura de urls parra las entradas individuales y para la paginación
  • El otro hook post_link es un complemento que igualmente tiene efecto sólo en las entradas
  • Si en caso deseas cambiar el texto «blog» simplemente reemplaza la variable $slug en ambas funciones
  • El código esta basado en esta discusión

 

Puedes agregar este código en el archivo functions.php de tu tema hijo o usar algún plugin de snippets
Luego de agregar el código, ve a Ajustes > Enlaces Permanentes y guarda, no es necesario hacer cambios, esto es para que se tomen en cuenta las nuevas reglas agregadas en código.

 

Código alterno simplificado con opción de redirección para SEO

Es posible cambiar el slug cambiando directamente el registro del Custom Post Type, esto simplifica el código. Además de eso se ha incluído la opción de redirección, útil si quieres redirigir las urls que ya estan indexadas sin el slug «blog».


add_filter( 'register_post_type_args', 'dcms_change_slug_posts', 20, 2 );
function dcms_change_slug_posts( $args, $post_type ) {
    if ( $post_type == "post" ) {
      $args['rewrite'] = array(
        'slug' => 'blog'
      );
    }
  
    return $args;
}

add_filter('the_permalink', 'dcms_change_post_permalink');
function dcms_change_post_permalink( $link ) {
  global $post;
  if ( $post->post_type === 'post' ) {
    $link = str_replace( $post->post_name, 'blog/' . $post->post_name, get_permalink( $post ) );
  }
  return $link; 
}

add_action('template_redirect', 'dcms_redirect_to_blog_slug');
function dcms_redirect_to_blog_slug() {
  if ( is_main_query() && is_single() && get_post_type() === 'post' ) {
    if ( strpos( trim( add_query_arg( array() ), '/' ), 'blog' ) !== 0 ) {
      global $post;
      $url = str_replace( $post->post_name, 'blog/' . $post->post_name, get_permalink( $post ) );
      wp_safe_redirect( $url, 301 );
      exit(); 
    }
  }
}

 

Conclusión

Como has podido ver, puedes cambiar la estructura de urls de las entradas y adaptarla a tus necesidades, puedes realizar esto ya sea a través de la configuración o a través de código.

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Remover el slug de la página padre en WordPressRemover el slug de la página padre en WordPress
  • Eliminar el slug de la URL de un Custom Post TypeEliminar el slug de la URL de un Custom Post Type
  • Agregar endpoints a la API REST de WordPressAgregar endpoints a la API REST de WordPress
  • Subir archivos en WordPress usando Ajax
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (2 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Webmaster

    19 julio, 2022

    Estaba usando el código pero si se utiliza Elementor está generando problemas con el slug no lo deja editar, toca publicar el artículo y luego volver a abrirlo para editar el slug

    • Jhon Marreros Guzmán

      20 julio, 2022

      Hola, si has usado la opción uno debería se transparente para Elementor, es decir, no tendrías por que tener problemas. Es posible que igual sea otro el problema podrías probar ir desactivando plugins o actualizar los que tengas. Saludos.

  2. Núria

    13 octubre, 2022

    Hola Jhon,

    Si quiero usar la segunda opción que propones, ¿será necesario aplicar redirecciones al htaccess, verdad?

    Quiero aplicarlo en un blog que ya lleva algún tiempo activo y tiene bastante contenido, pero no quiero romperlo todo al aplicar esta modificación.

    Muchas gracias!

    • Jhon Marreros Guzmán

      13 octubre, 2022

      Hola, efectivamente, si cambias la estructura de urls y tienes esas urls ya posicionadas, entonces deberás hacer redirecciones para no perjudicar tu SEO.

  3. May

    21 noviembre, 2022

    Hola Jhon,
    Muchas gracias por compartir este recurso, me ha resuelto una necesidad para una migración que estoy desarrollando. Una pregunta, ¿sabrías adaptar este código para conseguir el slug /content/ en los archivos de tipo página? 😉

    • Jhon Marreros Guzmán

      24 noviembre, 2022

      Hola, en el código podrías probar cambiando el post_type=post por post_type=page, la otra opción más simple sería que hagas una página padre llamada content y colocar todas las otras páginas dentro. Saludos.

  4. Isabel

    30 noviembre, 2022

    Buenos días Jhon,
    Gracias por tu artículo. He seguido los pasos para agregar el slug blog (opción 2, con código) y en mi web, que está a dos idiomas, las entradas en inglés perfecto pero las de castellano van a error404.

    Es un problema de redireccionamiento o había que hacer algo más al tener 2 idiomas?

    Muchas gracias!

    • Jhon Marreros Guzmán

      30 noviembre, 2022

      Hola, al estar usando un plugin de idiomas primero prueba la opción 1 ya que es la más transparente para plugins que hacen cambios con las urls.

  5. sandra

    4 enero, 2024

    Hola, la categoría aparecerá en las nuevas entradas o tmb en las que ya existen?

    • Jhon Marreros Guzmán

      5 enero, 2024

      Hola, aparecerá en todas, si tienes algunas urls posicionadas en los buscadores, tendrías que evaluar hacer redirecciones.

      Saludos.

  6. Jose Antonio Miranda

    7 julio, 2025

    Muchas gracias! Funciona

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

Agregar un Slider al tema Storefront

Mostrar notificaciones por usuario en la administración de WordPress

¿Qué son los Nonces en WordPress?

Formulario de login mejorado sin plugins en WordPress

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