Desactivar la verificación automática de actualizaciones en WordPress
WordPress verifica automáticamente las actualizaciones de sí mismo y de todos los temas y plugins instalados. Esto añade una molesta demora al cargar cualquier página de WordPress. Solo ocurre una vez al día y las siguientes cargas de página no lo hacen, pero es tan largo que me hace pensar dos veces si vale la pena abrir esa primera página (especialmente si solo necesito hacer algo rápido en lugar de pasar todo el día en WordPress).
De todos modos, solo actualizo de vez en cuando y preferiría realizar las actualizaciones manualmente, así que creé un plugin para eliminar el botón de Actualizaciones de la barra de administración. Pensé que eso resolvería el problema, pero aparentemente solo elimina el botón y la verificación real todavía se realiza en segundo plano.
Cualquier otro programa en el mundo te permite desactivar las actualizaciones automáticas, así que espero que debería haber una manera de hacer lo mismo para WordPress, pero si la hay, está un poco demasiado bien escondida.
Cuando intenté encontrar una solución, todas las preguntas que aparecieron eran lo opuesto, sobre cómo forzar que las actualizaciones automáticas se apliquen (no solo que se verifiquen automáticamente).
¿Cómo se pueden desactivar las verificaciones automáticas de actualizaciones en WordPress?

Esto funcionó para mí para desactivarlo en localhost - lo cual era muy molesto ya que está detrás de un firewall y el tiempo de espera por el timeout era enorme.
define( 'WP_HTTP_BLOCK_EXTERNAL', true );
define( 'AUTOMATIC_UPDATER_DISABLED', true );
define( 'WP_AUTO_UPDATE_CORE', false );
Ten en cuenta que no estoy seguro si desactivar WP_HTTP_BLOCK_EXTERNAL es necesario. No recomiendo que lo desactives en un servidor que requiera comunicación con otros servidores.

Cómo desactivar las actualizaciones automáticas del núcleo pero activar las actualizaciones automáticas de plugins y temas
Si deseas detener las actualizaciones automáticas del núcleo de WordPress, pero activarlas para tus Plugins y/o Temas, puedes agregar estas líneas en el archivo wp-config.php: Detener las actualizaciones automáticas del núcleo:
define( 'WP_AUTO_UPDATE_CORE', false );
Luego activar los plugins/temas:
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );
Cómo desactivar completamente las actualizaciones automáticas de WordPress
Si deseas desactivar por completo las actualizaciones automáticas de WordPress, abre el archivo wp-config.php y agrega esta línea:
define( 'AUTOMATIC_UPDATER_DISABLED', true );

El siguiente código desactivará la verificación automática de actualizaciones en el administrador de WordPress.
Puedes agregarlo al archivo functions.php
de tu tema.
remove_action('admin_init', '_maybe_update_core');
remove_action('admin_init', '_maybe_update_plugins');
remove_action('admin_init', '_maybe_update_themes');

Bien, aquí tienes una solución que elimina las actualizaciones disponibles y también evita la comprobación de actualizaciones.
Esta solución asume PHP > 5.3 (ya que utiliza funciones anónimas)
Parte 1) Limpia cualquier actualización existente:
add_filter( 'site_transient_update_plugins',
function ( $oUpdatesResult ) {
if ( ! is_object( $oUpdatesResult ) ) {
$oUpdatesResult = new stdClass();
}
$oUpdatesResult->response = array();
return $oUpdatesResult;
},
PHP_INT_MAX
);
Parte 2) Previene la petición HTTP saliente que realiza la comprobación real:
add_filter( 'pre_http_request',
function ( $bFalse, $aReqParams, $sUrl ) {
if ( strpos( $sUrl, '//api.wordpress.org/plugins/update-check/1.1/' ) ) {
$bFalse = null;
}
return $bFalse;
},
PHP_INT_MAX,
3
);
Puntos a tener en cuenta:
- WordPress solo comprueba actualizaciones cuando cargas ciertas páginas en el área de administración, como la página de plugins o la página de Actualizaciones, así que realmente no ganas en rendimiento.
- Esto es solo para plugins. Para manejar temas, repite lo que ves aquí pero donde dice "plugin" cámbialo por "theme". Es decir, en el nombre del filtro y en la URL.
- Puedes poner esto en el functions.php de tu tema.

Mark Jarquith ya había publicado sobre esto en su blog hace un tiempo. Básicamente, cancela las solicitudes a los repositorios públicos de SVN en wp.org a través de los filtros de la API HTTP de WordPress.
Para Plugins (debe colocarse dentro del plugin):
add_filter( 'http_request_args', 'wpse_102554_deny_plugin_updates', 5, 2 );
function wpse_102554_deny_plugin_updates( $r, $url )
{
if ( 0 !== strpos( $url, 'http://api.wordpress.org/plugins/update-check' ) )
return $r;
$plugins = unserialize( $r['body']['plugins'] );
unset(
$plugins->plugins[ plugin_basename( __FILE__ ) ],
$plugins->active[ array_search( plugin_basename( __FILE__ ), $plugins->active ) ]
);
$r['body']['plugins'] = serialize( $plugins );
return $r;
}
Para Temas (debe colocarse dentro del archivo functions.php
del tema y solo funciona para el tema actualmente activo):
add_filter( 'http_request_args', 'wpse_102554_deny_theme_updates', 5, 2 );
function wpse_102554_deny_theme_updates( $r, $url )
{
if ( 0 !== strpos( $url, 'http://api.wordpress.org/themes/update-check' ) )
return $r;
$themes = unserialize( $r['body']['themes'] );
unset(
$themes[ get_option( 'template' ) ],
$themes[ get_option( 'stylesheet' ) ]
);
$r['body']['themes'] = serialize( $themes );
return $r;
}
John Blackburn ha escrito un plugin para desactivar las actualizaciones de temas.

Creo que los fragmentos de código no funcionarán. Desde WordPress 3.7 la API funciona con una cadena JSON. La función serialize
no puede trabajar con JSON, usa como alternativa json_decode
y json_encode
. Mira el siguiente gist para el código fuente completo - https://gist.github.com/bueltge/5a3545ada7e68d367424
