WordPress 5.3, la burbuja de los Masters WordPress – Crónicas WordPress Intensas #13

Intensa y variada nueva crónica WordPress intensa, en esta ocasión los temas de los que te invito a charlar y comentar en mi canal de YouTube son estos:

  • WordCamp Valencia
  • WordCamp Granada
  • La burbuja de los masters de post-grado y cursos de WordPress
  • Las novedades de WordPress 5.3
  • Los cambios en el SEO WordPress

Si te interesa alguno de estos asuntos, pero sobre todo mi visión sobre los mismos, aquí tienes el vídeo

Si prefieres simplemente  escuchar las Crónicas WordPress intensas como podcast puedes suscribirte en Anchor.fmSpotifyGoogle Podcasts o Apple Podcasts.

La entrada WordPress 5.3, la burbuja de los Masters WordPress – Crónicas WordPress Intensas #13 la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.

Cómo evitar que WordPress cambie el archivo .htaccess

Si eres lector veterano del blog sabrás que hace ya un tiempo estuve explicando por qué es mala idea dejar que WordPress haga cambios sin tu control en el archivo .htaccess.

Bien, pues hoy vamos a añadir una vuelta de rosca más, y añadir a tu arsenal de trucos para .htaccess uno más, precisamente también para evitar que WordPress haga cambios al archivo

.htaccess

que escapen de tu control.

Lo que vamos a ver no anula lo dicho en el artículo sobre lo malo que es que WordPress cambie el archivo

.htaccess

, y de hecho deberías leerlo para conocer los «por qués». Simplemente te ofrece un método alternativo, que además es muy chulo.

El método más efectivo para evitar que WordPress cambie el .htacccess

En este artículo te voy a ofrecer un modo super efectivo para evitar que WordPress haga cambios, modifique el archivo

.htaccess

.

Y sin hacerte esperar más … el código es así:

# EVITAR MODIFICACIONES DE WP


# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


# END WordPress

¿Qué hace este código?

Lo mejor de este bloque de código es que en realidad no hace nada.

En la primera línea usamos

para comprobar si existe un módulo de Apache que no existe, nos lo hemos inventado (

mod_ignore_wordpress

).

Y como el módulo ni existe ni existirá en el servidor, Apache ignora todo lo que haya dentro del contenedor

.

De este modo, el efecto de estas reglas es que no hace nada lo que haya dentro.

Luego, dentro del contenedor 

exterior, están las reglas por defecto añadidas automáticamente por WordPress. Las que WordPress añade a tu archivo

.htaccess

cuando activas enlaces permanentes.

Estas reglas interiores son las que WordPress encontrará y actualizará automáticamente si creo que tiene que hacerlo.

Y como las reglas se ignoran, puedes tener cualquier regla de WordPress en cualquier otro sitio del archivo

.htaccess

, y no se verán afectadas por ninguna modificación automática de WordPress.

La clave a la hora de usar este código de manera efectiva es asegurarte de que tus reglas personalizadas para WordPress NO se parezcan las reglas de WordPress por defecto.

Y para conseguirlo, simplemente recuerda no incluir estas líneas antes y después de tus reglas personalizadas para WordPress:

# BEGIN WordPress

# END WordPress

No incluyas nada parecido a esas líneas antes y después de tus reglas personalizadas para WordPress.

Por ejemplo, podrías usar

# PARA WORDPRESS

y omitir cualquier comentario de cierre, así:

# PARA WORDPRESS

	RewriteBase /
	RewriteRule ^index.php$ - [L]
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	# Cualquier reglas personalizada, etc.
	RewriteRule . /index.php [L]

Todo junto te quedaría tal que así:

# EVITAR MODIFICACIONES DE WP


# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


# END WordPress



# PARA WORDPRESS

	RewriteBase /
	RewriteRule ^index.php$ - [L]
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	# Cualquier regla personalizada, etc.
	RewriteRule . /index.php [L]

Fíjate que las líneas primera y última de cada bloque de reglas son únicas. WordPress reconocerá y modificará el primer bloque, el que empieza por

# BEGIN WordPress

y termina en

# END WordPress

, e ignorará tus reglas personalizadas.

De puro sencillo es hasta bonito, y suena casi a cachondeo que funcione tan bien un truco tan simple.

Espero que hayas aprendido algo, y vuelvo a recomendarte que eches un vistazo antes al artículo sobre por qué es mala idea que WordPress cambie automáticamente el archivo .htaccess, para entender la necesidad – o no – de este truco.

La entrada Cómo evitar que WordPress cambie el archivo .htaccess la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.

Cómo sustituir un medio por otro en WordPress y que no se rompa nada

Si has necesitado alguna vez en WordPress sustituir un medio por otro, por ejemplo, un documento PDF de un catálogo de precios, o incluso una imagen de logotipo de un cliente que aparezca en varios sitios, y sabes que es una tarea tediosa y no carente de problemas.

Algo que a priori es sencillo, pues solo tienes que editar la entrada o página donde esté el medio, resulta que, en ocasiones, conlleva tareas adicionales y riesgos de que algo no funcione.

Porque, al subir un medio e insertarlo en un contenido, este se muestra con un nombre original, y la ruta de su URL incluye normalmente las carpetas de las fechas.

Así que, por ejemplo, si subes un nuevo PDF del catálogo de precios, no puedes simplemente borrar el antiguo, tendrías que repasar en tu web todos las entradas, páginas, e incluso descargas de productos si es un e-commmerce, en los que se incluyese un enlace al susodicho PDF, porque si no lo haces fallaría la visualización/descarga, etc.

Otra situación podría ser un logotipo de un cliente o proveedor que muestres en varios sitios de tu web. Si cambia el logo tendrás que editar cada lugar en el que aparezca, no hay un modo en WordPress para sustituir un medio por otro y que todo siga como antes.

¿O sí lo hay?

Efectivamente, hay un plugin que es una auténtica maravilla, un imprescindible en tu lista de plugins favoritos.

Me refiero a Enable Media Replace.

Solo tienes que instalarlo, no hay que configurar nada, se integra totalmente con el cargador de medios de WordPress.

Pero no te lo cuento, te lo muestro en este vídeo corto

Como ves es muy sencillo, pero sobre todo es importante las decisiones que tomes a la hora de sustituir el medio, a saber:

  • Sólo sustituir el archivo: Esta opción requiere que subas un archivo del mismo tipo (imagen/pdf/etc) que el que estás sustituyendo. El nombre del adjunto seguirá siendo el mismo (tu-archivo.ext) sin importar cómo se llame el archivo que subas.
  • Sustituir el archivo, usar el nuevo nombre de archivo y actualizar todos los enlaces: Si marcas esta opción, el nombre y el tipo de archivo que vas a subir sustituirán al archivo antiguo. Todos los enlaces que apuntan al archivo actual se actualizarán para que apunten al nuevo nombre de archivo.
  • Sustituir la fecha: Solo a efectos internos, no cambia la ruta.
  • Mantener la fecha del archivo original: Solo a efectos internos.
  • Establecer una fecha personalizada: Solo a efectos internos, no cambia la ruta.

Elijas las opciones que elijas tu contenido no mostrará errores, se sustituirá el medio anterior por el nuevo.

Lo más mágico del plugin es que sirve para todo tipo de medio subido a tu WordPress y que los sustituye automáticamente en todos los sitios en los que esté insertado el medio anterior.

La entrada Cómo sustituir un medio por otro en WordPress y que no se rompa nada la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.