• Ir a navegación principal
  • Ir al contenido principal
  • Ir a la barra lateral primaria

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
Inicio / Tutoriales / Core / Redireccionar las páginas de adjuntos en WordPress
Anuncio banner webservi

Redireccionar las páginas de adjuntos en WordPress

Redireccionar las páginas de adjuntos en WordPress

[ 23 octubre 2018 ] [ Autor: Jhon Marreros Guzmán ][ Core - Intermedio] [ ]

imagen mejoras

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Todos los archivos que subes usando la galería multimedia, adicional al archivo físico que se guarda en la carpeta wp-content/uploads, también se guarda un registro en la base de datos, es decir el adjunto es tratado como un Custom Post Type llamado attachment.

 

Generalidades

Los adjuntos al ser tratados como Custom Post Type, generan por defecto una url que puede ser visualizada en el front-end del sitio.

Si consultas alguna imagen desde el menú de medios del backend de tu WordPress, verás que aparece un enlace, tal como se muestra a continuación:

Enlace en pantalla de detalle de imagen

 

La url generada tendrá la siguiente forma:

http://midominio.com/mi-imagen/

Si la imagen esta asociada a una entrada (como imagen destacada), por ejemplo con la entrada Hola Mundo, entonces la url generada tendrá la siguiente forma:

http://midominio.com/hola-mundo/mi-imagen/

Si accedes a este enlace verás que puedes ver la imagen como si fuese una entrada en el front-end de tu sitio:

Front-end página de adjuntos creada

 

Redireccionando la página de adjuntos por código

Estas urls de páginas para cada imagen adjunta en la mayoría de los casos no serán necesarias, especialmente si estas optimizando el SEO de tu sitio, por lo que puedes evaluar redireccionar estas urls, puedes usar el siguiente código:


add_action( 'template_redirect', 'dcms_redirect_attachment_page' );

function dcms_redirect_attachment_page() {
	if ( is_attachment() ) {
		global $post;
		if ( $post && $post->post_parent ) {
			wp_redirect( esc_url( get_permalink( $post->post_parent ) ), 301 );
			exit;
		} else {
			wp_redirect( esc_url( home_url( '/' ) ), 301 );
			exit;
		}
	}
}

Puedes añadir este código al final de tu archivo functions.php de tu child-theme

En el código anterior:

  • Usamos el hook template_redirect que hace referencia a la función dcms_redirect_attachment_page
  • Dentro de la función comprobamos si lo que se mostrará es un attachment
  • Si lo es comprobamos si el attachment esta asociado a alguna entrada, de ser así redireccionamos a la entrada
  • Si no esta relacionado a una entrada redirigimos al home del sitio
  • En cada redirección es necesario terminar con exit

 

La redirección también podría hacerse con un código similar en el archivo attachment.php del theme, según la Jerarquía de archivos de un theme WordPress.

 

¿Usas el plugin Yoast SEO?

Si tienes el plugin de Yoast SEO, no será necesario hacer esto por código, por defecto Yoast SEO ya hace la redirección. Lo puedes comprobar desde: SEO > Apariencia en el buscador > Medios > Redirigir las URL de adjuntos a los propios adjuntos.

Opción de medios en plugin Yoast SEO

 

Conclusión

Las urls que se generan por las páginas de adjuntos pueden ser innecesarias para tu sitio Web, hemos visto que puedes redirigir estas urls de manera simple a través de código, o si ya usas el plugin Yoast SEO asegurarte de que la configuración de redirección de urls de adjuntos se encuentre activa.

 

¿Aún con dudas?, en el siguiente video se detalla los puntos anteriores

Suscríbete a DecodeCMS:  

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Leer datos desde otra base de datos en WordPressLeer datos desde otra base de datos en WordPress
  • Crear un sitio One Page en WordPressCrear un sitio One Page en WordPress
  • Mostrar lista de autores en WordPressMostrar lista de autores en WordPress
  • Añadir código de Google Tag Manager sin plugins en WordPressAñadir código de Google Tag Manager sin plugins en WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (3 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. eduka

    10 febrero, 2020

    muy bueno, me ha sido de utilidad. Gracias!

  2. Franklin manama

    24 marzo, 2020

    muy buenas tardes muy util no lo sabia!!! y ademas en la caja de comentarios me aparecieron muchos spam estoy borrandolos en este momento imagino que con ese redireccionamiento no podran colocar mas comentarios no deseados

    • Jhon Marreros Guzmán

      26 marzo, 2020

      Hola, si los comentarios son en las páginas de adjuntos, simplemente ya no será accesible estas páginas.

  3. jimmy Alexander

    2 mayo, 2020

    muy útil y conciso, gracias

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

*

* Gravatar habilitado

Barra lateral primaria

Presentación

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
Los 5 posibles errores que estas cometiendo cuando trabajas con código en WordPress

Niveles

Básico Intermedio Avanzado

Etiquetas

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

Populares

Agregar CSS personalizado al área de administración de WordPress

Añadir una nueva zona de Widgets a un theme WordPress

Agregar campos adicionales al perfil de usuario

Archivo HTML como página de inicio en WordPress

Recientes

  • Leer datos desde otra base de datos en WordPress
  • Crear un sitio One Page en WordPress
  • Mostrar lista de autores en WordPress
  • Añadir código de Google Tag Manager sin plugins en WordPress
alojamiento wordpress

© logo decode pie Copyright 2021 | Todos los derechos reservados | Política de Privacidad