Why might $input (Settings API) be coming through empty?
The $input variable is not passed to the validate function by default. You need to declare it, e.g. not this: function mytheme_validate_settings() {} But rather, this: function mytheme_validate_settings( $input ) {} (Or maybe I’m the only one who’s made that bone-headed mistake before?) 🙂 EDIT: The other thing to check: does the $optiongroup in register_setting() … Read more