Si has hecho desarrollos a medida en WordPress seguramente te has encontrado en alguna ocasión con la siguiente situación: Te han pedido un desarrollo en el que has utilizado algún plugin para satisfacer una necesidad específica, pero no te ha quedado más remedio y has tenido que tocar algo en el código de ese plugin para adaptarlo fielmente a las necesidades de tu cliente.
Corres el riesgo de que el día de mañana actualicen ese plugin, aunque avises de que no lo hagan, y todas las modificaciones que has hecho se pierdan.
Vamos a ver con un sencillo código que podemos añadir en nuestro fichero functions.php cómo proteger plugins concretos de actualizaciones por error:
<?php
function disable_plugin_updates( $value ) {
unset( $value->response['akismet/akismet.php'] );
return $value;
}
add_filter( 'site_transient_update_plugins', 'disable_plugin_updates' );
Como vemos en este ejemplo hemos deshabilitado la actualización del plugin akismet. Sólo tienes que cambiar la ruta de akismet por la ruta al fichero principal de tu plugin, es decir: unset( $value->response[‘carpeta-de-tu-plugin/archivo-principal-de-tu-plugin.php’] );
Puedes añadir tantos «unset» como plugins desees deshabilitar las actualizaciones. Esta es la manera más útil para evitar la actualización de un plugin concreto.
No obstante, ésto no es una buena práctica. Nos estaremos perdiendo futuras actualizaciones del plugin, lo que incluirá con toda seguridad nuevas mejoras y temas de seguridad. Lo recomendable es que añadas al plugin modificado un fichero de texto donde apuntes qué líneas has tocado y una descripción detallada de las modificaciones.
Así dentro de un tiempo podrás actualizar el plugin obteniendo las nuevas mejoras y evolutivos de seguridad, y podrás de una manera rápida volver a añadir tus modificaciones para re-adaptarlo a tus necesidades.
Otra cosa que puedes hacer es intentar ponerte en contacto con el desarrollador/a del plugin. Quizá tus modificaciones doten al plugin de funcionalidades nuevas que el desarrollador/a original pueda tener interés en implementar en futuras versiones.