In response to the recent change to require the use of the customizer for theme options, Puneet Sahalot brings up an issue with the way saving options works by default when using the customizer:
To use the Live Preview feature, we need to use
'type' => 'theme_mod'and then bind it with the customizer js. Now, the problem is
theme_modis specific to the currently active theme. Which means that the current theme’s data/settings/options can not be accessed by another theme.
get_option(), all the data is globally accessible.
theme_modapproach, the problem comes in when you build a child theme. Since the data was earlier saved specific to the parent theme, it becomes unusable to the child theme. If you have setup a site with parent theme and later realize the need for some customization, you go ahead to build the child theme and after you activate it, you will need to re-do all the settings and options.
I actually opened a ticket for this over a year ago, and now sounds like as good a time as any to get more eyeballs on Konstantin’s Obenland’s proof of concept patch.