desactivar - meta tags wordpress plugin
Wordpress: cómo desactivar la actualización del complemento (6)
He encontrado un gran complemento para Wordpress bajo licencia GPLv2 e hice muchos cambios en el código fuente, el plugin hace algo más ahora. Modifiqué el 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 busca actualizaciones de complementos, trata mi complemento 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 de WP.
¿Qué más tengo que cambiar?
Aquí hay una versión actualizada del guión de Mark Jaquith:
- Las actualizaciones de WP cambiaron a HTTPS
- Unserialize fue bloqueado en mi hosting compartido
- Esto usa json_decode y json_encode en su lugar
- Crédito: actualización del complemento de bloque
.
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;
}
Coloque este código en el archivo de funciones functions.php. Esto está funcionando para mí y lo estoy usando. También esto es para un complemento específico. Aquí debe cambiar la URL del archivo principal del complemento para que coincida con la de su complemento.
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-comments-plugin" => comentario de facebook plugin folder
"facebook-comments.php" => plugin principal file.this puede ser diferente como index.php
Espero que esto sea de ayuda.
Más detalles en mi blog.
Deshabilitar la actualización del complemento
Agregue este código en su archivo raíz de complementos.
add_filter(''site_transient_update_plugins'', ''remove_update_notification'');
function remove_update_notification($value) {
unset($value->response[ plugin_basename(__FILE__) ]);
return $value;
}
En el archivo de complemento, habrá una función que buscará actualizaciones. El autor original podría haber llamado a esto cualquier cosa, por lo que tendrá que pasar por el código y verificar 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/
La forma más simple y efectiva es cambiar la versión del complemento que no desea obtener la actualización. Por ejemplo, si no quiero que wptouch se actualice, abro su archivo de definición, que es como:
/*
Plugin Name: WPtouch Mobile Plugin
Plugin URI: http://www.wptouch.com/
Version: 4.0.4
*/
Aquí, en la Versión, cambie 4.0.4 a 9999 como:
/*
Plugin Name: WPtouch Mobile Plugin
Plugin URI: http://www.wptouch.com/
Version: 9999
*/
add_filter(''site_transient_update_plugins'', ''__return_false'');
en function.php agrega el código anterior e inhabilita todas las actualizaciones de complementos