Wordpress - cómo desactivar la actualización del plugin
He encontrado un gran plugin para Wordpress bajo la licencia GPLv2 e hice muchos cambios en el código fuente, plugin hace algo más ahora. He modificado autor (con los créditos del autor del plugin original), url, número de versión (de xxx 1.5 a yyy 1.0).
Todo funciona muy bien, pero cuando Wordpress comprueba si hay actualizaciones de complementos, trata mi plugin yyy 1.0 como xxx 1.0 y muestra una notificación sobre la actualización disponible.
Mi plugin cambiado yyy 1.0 se instaló copiando archivos de mi computadora, no del repositorio WP.
¿Qué más tengo que cambiar?
7 answers
En el archivo plugin, habrá una función que buscará actualizaciones. El autor original podría haber nombrado esto cualquier cosa, por lo que tendrá que ir a través del código y comprobar cada función y lo que hace. Me imagino que la función será bastante obvia en cuanto a lo que hace.
Alternativamente, puede agregar esto a su archivo de complemento:
add_filter( 'http_request_args', 'dm_prevent_update_check', 10, 2 );
function dm_prevent_update_check( $r, $url ) {
if ( 0 === strpos( $url, 'http://api.wordpress.org/plugins/update-check/' ) ) {
$my_plugin = plugin_basename( __FILE__ );
$plugins = unserialize( $r['body']['plugins'] );
unset( $plugins->plugins[$my_plugin] );
unset( $plugins->active[array_search( $my_plugin, $plugins->active )] );
$r['body']['plugins'] = serialize( $plugins );
}
return $r;
}
Créditos: http://developersmind.com/2010/06/12/preventing-wordpress-from-checking-for-updates-for-a-plugin/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-12 18:40:29
Desactivar la actualización del plugin
Añade este código en el archivo raíz del plugin.
add_filter('site_transient_update_plugins', 'remove_update_notification');
function remove_update_notification($value) {
unset($value->response[ plugin_basename(__FILE__) ]);
return $value;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-12 18:44:26
Ponga este código en las funciones del tema.archivo php. Esto funciona para mí y lo estoy usando. También esto es para plugin específico. Aquí necesita cambiar la url del archivo principal del plugin para que coincida con la de su plugin.
function my_filter_plugin_updates( $value ) {
if( isset( $value->response['facebook-comments-plugin/facebook-comments.php'] ) ) {
unset( $value->response['facebook-comments-plugin/facebook-comments.php'] );
}
return $value;
}
add_filter( 'site_transient_update_plugins', 'my_filter_plugin_updates' );
Aquí:
"facebook facebook-comments-plugin" = > facebook comments plugin nombre de la carpeta
"facebook-comentarios.php " = > archivo principal del plugin.esto puede ser diferente como índice.php
Espero que esto sea de ayuda.
Más detalles en mi blog.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-12 18:42:51
La forma más sencilla y efectiva es cambiar la versión del plugin que no desea actualizar. Por ejemplo si no quiero que wptouch se actualice, abro su archivo de definación, que es como:
/*
Plugin Name: WPtouch Mobile Plugin
Plugin URI: http://www.wptouch.com/
Version: 4.0.4
*/
Aquí, en el cambio de Versión 4.0.4 a 9999 como:
/*
Plugin Name: WPtouch Mobile Plugin
Plugin URI: http://www.wptouch.com/
Version: 9999
*/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-27 11:40:15
add_filter('site_transient_update_plugins', '__return_false');
En función.php añade el código anterior y desactiva todas las actualizaciones de plugins
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-10 08:53:44
Aquí está una versión actualizada del guion de Mark Jaquith:
- Las actualizaciones de WP han cambiado a HTTPS
- Unserialize fue bloqueado en mi alojamiento compartido
- Esto usa json_decode y json_encode en su lugar
- Crédito: Bloque Plugin Update
.
add_filter( 'http_request_args', 'widget_disable_update', 10, 2 );
function widget_disable_update( $r, $url ) {
if ( 0 === strpos( $url, 'https://api.wordpress.org/plugins/update-check/' ) ) {
$my_plugin = plugin_basename( __FILE__ );
$plugins = json_decode( $r['body']['plugins'], true );
unset( $plugins['plugins'][$my_plugin] );
unset( $plugins['active'][array_search( $my_plugin, $plugins['active'] )] );
$r['body']['plugins'] = json_encode( $plugins );
}
return $r;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-30 00:49:30
Desactivar actualizaciones de plugin manualmente:
- Abrir funciones.archivo php (vaya a su carpeta de temas activados)
- Copie y pegue el siguiente código:
remove_action( 'load-update-core.php', 'wp_update_plugins' );
add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) );
- Guarda los cambios y listo
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-18 18:59:08