Блог экспериментатора инженера-разработчика: Infanty.
Я пишу how-to статьи на редкие темы или статьи обзоры - для себя и тех кто со мной работает.
Блог существует при поддержке: "Оккупационных сил Марса".

Первым шагом добавим к настройкам темы текстовое поле с заголовком Widget. Для этого в корне темы создадим файл theme-settings.php. И в нём имплементируем хук, который изменит форму с настройками темы:

<?php

/**
 * Implements hook_form_FORM_ID_alter().
 */
function admin_theme_form_system_theme_settings_alter(&$form, &$form_state) {
  $form['admin_theme_text'] = array(
    '#type' => 'textfield',
    '#title' => t('Widget'),
    '#description' => t('Place this text in the widget spot on your site.'),
    '#default_value' => theme_get_setting('admin_theme_text'),
  );
}

Стоит обратить внимание на то, что ключ массива $form должен именоваться так же, как передаваемое значение в функцию theme_get_setting(). В данном случае это: admin_theme_text .

Для установки стартового значения текстового поля при активации темы в папке темы создадим подпапку config, в ней подпапку install, а уже в ней файл: admin_theme.settings.yml (где admin_theme - машинное имя темы оформления для Drupal 8). В данном файле зададим начальное значение поля с заголовком Widget:

admin_theme_text: 'Любой текст или число' 
admin_theme_checks: '0'

Используются настройки просто - в любом функции в файле admin_theme.theme вызовите функцию theme_get_setting(). После чего можно как произвести какие либо действия связанные с переменной, так и передать её значение в шаблонизатор. Пример:

function admin_theme_preprocess_page (&$variables) {
  $variables['admin_theme_text'] = theme_get_setting('admin_theme_text');
} 

После чего переменную можно вывести в шаблоне:

{{ admin_theme_text }}