WordPress autoupdate desmitificado


actualizandoDesde WordPress 3.7+, en su afán por mejorar su seguridad, se le añadió la funcionalidad de autoupdate, es decir de poderse actualizar automáticamente, sin intervención manual, y así tapar los agujeros de seguridad conocidos.

 

Posiblemente estás leyendo este artículo porque recientemente te habrá llegado un email informándote de que tu web, con alguna versión de WordPress 3.7+, se ha actualizado a una versión superior, por propia iniciativa. ¿Da un poco de miedo, no?

Si además tienes algún tema retocado o plugin de esos que están hechos por gente poco preparada, es factible que tu web pueda dejar de funcionar bien o no se muestre según lo esperado. De todas maneras desactivar las actualizaciones no es lo más aconsejable, tu web estará a merced de los fallos de seguridad, y podrá ser víctima de hackers/spammers.

El dilema que tienes entre manos es, o estar automáticamente protegido de los agujeros de seguridad (especialmente de los 0 Day), o mantener tú el control sobre que se instala o no en tu web y hacerlo manualmente.

 

Como siempre, tienes dos soluciones. La primera es buscar e instalar un plugin de WordPress que añadirá al panel de administración de tu web un nuevo menú y su pantalla con nuevas opciones, para únicamente escribir una o varias lineas en uno de los ficheros de configuración.

Y la otra opción es comprender el alcance de esos cambios y hacerlos tu mismo en el fichero de configuración pertinente.

 

Primeramente explicar que WordPress maneja 4 tipos de actualizaciones automáticas:

  1. Actualizaciones del núcleo (Core updates)
  2. Actualizaciones de los complementos (Plugin updates)
  3. Actualizaciones de los temas (Theme updates)
  4. Actualizaciones de las traducciones (Translation file updates)

Además para el caso del las actualizaciones del núcleo (Core updates) este se puede actualizar de una versión a otra mayor (actualización de una major version), o sólo en el caso de versiones menores, es decir, de una versión "x.y.z" a una versión "x.y.z+1" (minor version).

En su configuración por defecto, el modo de autoupdate está configurado en WordPress para realizar actualizaciones  del nucleo menores, y de las traducciones de los idiomas.

 

Para modificar el comportamiento por defecto, el fichero que has de editar es "wp-config.php" y en él tendrás que modificar o añadir las siguientes lineas de código para definir el valor de las «constantes».

 

Desactivar cualquier tipo de actualización

define( 'AUTOMATIC_UPDATER_DISABLED', true );

Esta opción es la menos aconsejable, perderás todo tipo de notificaciones. Mejor usa alguna de las otras opciones.

 

Desactivar las actualizaciones del núcleo

// Desactivar todas las actualizaciones, las de desarrollo, las 'major' y las 'minor'.
define( 'WP_AUTO_UPDATE_CORE', false );

// Activar todas las actualizaciones, las de desarrollo, las 'major' y las 'minor'.
define( 'WP_AUTO_UPDATE_CORE', true );

// Activar solo las actualizaciones menores del núcleo. Opción por defecto. 
define( 'WP_AUTO_UPDATE_CORE', 'minor' );

Usando una de las anteriores líneas de código, podrás establecer cómo se comporta WordPress >= 3.7 en las actualizaciones del núcleo. Ojo con establecer la constante a ‘true’, quizás no sea una buena idea.

 

Las anteriores opciones se corresponden con la definición de constantes en el fichero "wp-config.php", para las siguientes opciones se usan los llamados ‘filtros’, que son instrucciones que tienes que poner en el fichero "functions.php" del tema activo.

 

Desactivar cualquier tipo de actualización mediante un filtro

add_filter( 'automatic_updater_disabled', '__return_true' );

Esta opción es la menos aconsejable, perderás todo tipo de notificaciones. Mejor usa alguna de las otras opciones.

 

Ajustes precisos de las actualizaciones del núcleo mediante filtros

// Desactivar todas las actualizaciones, las de desarrollo, las 'major' y las 'minor'.
add_filter( 'auto_update_core', '__return_false' );

// Activar las actualizaciones mayores, las 'major'.
add_filter( 'allow_major_auto_core_updates', '__return_true' );

// Activar solo las actualizaciones menores del núcleo. 
add_filter( 'allow_minor_auto_core_updates', '__return_false' );

// Activar las actualizaciones de desarrollo del núcleo.
add_filter( 'allow_dev_auto_core_updates', '__return_true' );

// Permitir la actualización automática del tema, los plugins y las traducciones.
add_filter( 'auto_update_theme', '__return_true' );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_translation', '__return_false' );

 

Mediante filtros, también puedes desactivar las notificaciones vía email.

 // Desactivar el envío de emails de notificación.
add_filter( 'auto_core_update_send_email', '__return_false' );

 

Deja un comentario

Para comentar has de leer y aceptar la Política de privacidad.

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.