My answer might come a bit late for you, but as I had the same problem today, here’s what I found out:
1) First of all, if you set 'type' => 'option'
for your custom settings, you should use the get_option()
function to retrieve the values. If you set 'type' => 'theme_mod'
(or don’t set a type at all as it defaults to theme_mod), you can retrieve the values using get_theme_mod()
2) Then, if you set your options in an array like my_theme_option[my_option_value]
, you have to do the following to output the value:
$options = get_option('my_theme_option');
echo $options['my_option_value'];
Thus, for your CSS output, do this:
public static function header_output() {
$options = get_option($mytheme_options);
?>
<!--Customizer CSS-->
<style type="text/css">
body { color:<?php echo $options['body_background']; ?>; }
.site-title { color:<?php echo $options['site_title']; ?>; }
.site-description { color:<?php echo $options['site_description']; ?>; }
#content a { color:<?php echo $options['link_textcolor']; ?>; }
#content a:hover { color:<?php echo $options['link_hover_textcolor']; ?>; }
</style>
<!--/Customizer CSS-->
<?php
}
I hope this helps.