in another wordpress blog (version 3.1), we’ve recently had problems with plugins and themes, where new dynamic options of wordpress 3+ (including plugin settings, theme settings and menu settings) would not get updated.
new input or changes in the values on the respective administration page were just ignored, despite the confirmation message on top of the page, saying “changes were saved” etc.
i just found the cause of the problem:
in that specific instance of wordpress, for some reason, the necessary fields in table wp_options of the wordpress database are not present. if an option field is not there and wordpress tries to update its value, it apparently just ignores that.
the solution, in our case, was setting up a new, additional wordpress system, installing the plugins and themes there, and copying the new fields in wp_options over to the existing blog database (be sure to change the option_id value so there are no duplicate entries!).
now, everything updates just fine.
since i couldn’t find any mention of that strange behaviour, i thought i’d share it here.
update: i realize that this is not a very clean solution and has to be done for every new plugin, but at least it’s a start.