Some days ago a friend gave a refresh to his WordPress blog, changing the theme and reorganizing some pages. I was aware of it since he asked me an hand to deal with customizations he made on the old theme, and how to migrate them on the new one.
As you may know, when you change the theme there are good chances to “loose” the widgets or better to have them parked on the WordPress “not active area”. Knowing that, he worked few hours to install the new theme, configure it, restore the widgets.
After that he sent me an urgent question: “where are my social buttons and my ads on the tip of each post?”. I answered with a couple of questions: “did you changed the theme files to add them?” and “did you added them using a theme option?”.
I was hoping on the first case, since it would have been easy to find such files and extract the code. Of course the answer was: “I used a theme configuration”.
Well, when you change the theme, its configuration are still stored on the database but are not used anymore. To get them back, you should reactivate the theme, probably loosing the new widget configuration.
To avoid that I accessed directly the database,extracted the old piece of code (not for everyone) and then added again to the blog using (this time) Header and Footer plugin. Next time a theme change will preserve them.
Themes should display your content not manage it. Ads are de facto contents even if you inject them on every post. Clearly a theme can inject them in a more safe way since it “knows” the structure, but a theme change will make you to “loose” everything.
Using a plugin which is theme independent helps in keeping the right content in the right place: WordPress manages the posts, a plugin manages the injection of ads and social button, a theme manages the display of them.