There are two hooks you can use: ‘site_transient_update_plugins’, and ‘site_transient_update_themes’.
Plugins
To disable update for ‘fpw-category-thumbnails’ plugin, put the following code in functions.php of your theme ( child theme ):
function remove_plugin_updates($value) {
unset($value->response['fpw-category-thumbnails/fpw-category-thumbnails.php']);
return $value;
}
add_filter('site_transient_update_plugins', 'remove_plugin_updates');
If you want to disable updates for all plugins, use the following code:
function remove_plugin_updates($value) {
return null;
}
add_filter('site_transient_update_plugins', 'remove_plugin_updates');
Themes
To disable update for ‘twentytwelve’ theme, put the following code in functions.php of your theme ( child theme ):
function remove_theme_updates($value) {
unset($value->response['twentytwelve']);
return $value;
}
add_filter('site_transient_update_themes', 'remove_theme_updates');
If you want to disable updates for all themes, use the following code:
function remove_theme_updates($value) {
return null;
}
add_filter('site_transient_update_themes', 'remove_theme_updates');
Summary
To disable plugin’s update, you must know a path to plugin’s .php file, relative to ‘/wp-content/plugins/’ folder.
To disable themes’s update, you must know a path to theme’s folder, relative to ‘/wp-content/themes/’ folder.
Easy way
To make it all easy, use Easy Update Manager plugin.