Respuestas:
Usar el administrador de temas es la forma correcta de Drupal 8 de obtener información sobre su tema.
\Drupal::service('theme.manager')->getActiveTheme()
Una regla general en drupal 8 es buscar el servicio de administrador (/ controlador).
** Nota: como señaló Neograph734 , \Drupal::service('theme.manager')->getActiveTheme()
devolverá el objeto de tema activo . Si desea obtener el nombre de la máquina del tema, use\Drupal::service('theme.manager')->getActiveTheme()->getName()
Esto lo hará:
$config = \Drupal::config('system.theme');
print $config->get('default');
Siempre puedes usar drush para explorar tus configuraciones disponibles:
drush config-list
y
drush config-list system
me dio una lista:
...
system.rss
system.site
system.theme.global
system.theme
...
y luego pude verificar con lo siguiente:
drush cget system.theme.global
y
drush cget system.theme
para finalmente descubrir que tiene una default
propiedad que fue lo que solicitó.
getActiveTheme()
función terminará devolviendo exactamente lo mismo: $this->configFactory->get('system.theme')->get('default')
administration theme
incluido Use:
$activeThemeName = \Drupal::service('theme.manager')->getActiveTheme();
theme used in front
no
admistartion theme
Uso:
$defaultThemeName = \Drupal::config('system.theme')->get('default');
Encontré a continuación en Drupal 8
$theme = \Drupal::theme()->getActiveTheme();
getName()
. Entonces, para obtener el nombre del tema, uno usaría\Drupal::service('theme.manager')->getActiveTheme()->getName();