static function get_setting($setting)
{
if (!isset(self::$valid_settings[$setting])) {
return false;
}
if (isset(self::$settings_cache[$setting])) {
return self::$settings_cache[$setting];
}
$value = get_option(self::SETTINGS_OPTION_PREFIX . $setting);
if (false === $value) {
$default_name = "default_{$setting}";
// e.g. default_dequeue_max_bytes
$value = Jetpack_Sync_Defaults::${$default_name};
update_option(self::SETTINGS_OPTION_PREFIX . $setting, $value, true);
}
if (is_numeric($value)) {
$value = intval($value);
}
$default_array_value = null;
switch ($setting) {
case 'post_types_blacklist':
$default_array_value = Jetpack_Sync_Defaults::$blacklisted_post_types;
break;
case 'post_meta_whitelist':
$default_array_value = Jetpack_Sync_Defaults::$post_meta_whitelist;
break;
case 'comment_meta_whitelist':
$default_array_value = Jetpack_Sync_Defaults::$comment_meta_whitelist;
break;
}
if ($default_array_value) {
if (is_array($value)) {
$value = array_unique(array_merge($value, $default_array_value));
} else {
$value = $default_array_value;
}
}
self::$settings_cache[$setting] = $value;
return $value;
}