Andrew Fletcher published: 25 January 2022 1 minute read
If you are using theme_get_settings, such as:
$value = trim(theme_get_setting('my_setting'));
Then in your code editor you will also be seeing undefined function 'theme_get_setting'. This function has been deprecated for some time.
Instead, you need to use
Passing the theme.manager and theme.initialization services to theme_handler constructor as optional parameters is deprecated. These parameters are also mandatory.
$theme_handler = \Drupal::service('theme_handler');Get a setting from 'claro' theme.
$logo = $theme_handler->getThemeSetting('logo.url', 'claro');Clear the 'claro' theme settings static cache.
$theme_handler->clearThemeSettingCache('claro')Clear the theme settings static cache for all themes.
$theme_handler->clearThemeSettingCache('theme_get_setting');Or something like
$value = \Drupal::service('theme_handler')->getThemeSetting($my_setting, 'your_theme');
if (!empty($value)) {
$variables['fishfrdc'][$my_setting] = Xss::filter($value);
}
Previously you would have been using
Get a setting from 'claro' theme.
$logo = theme_get_setting('logo.url', 'claro');Clear the 'claro' theme settings static cache.
$theme_settings = &drupal_static('theme_get_setting');unset($theme_settings[$theme_name]);
Clear the theme settings static cache for all themes.
drupal_static_reset('theme_get_setting');