Как удалить заголовок / заголовок страницы?

10

В Drupal 8 есть простой способ настроить страницу так, чтобы ее заголовок / заголовок не отображался на странице?

Я создал базовую страницу с / home в качестве псевдонима пути и Home в качестве заголовка. Я установил это как первую страницу. Тем не менее, он отображает «Дом» в верхней части страницы, чуть ниже панели навигации и хлебных крошек.

Нужно ли создавать подтему темы «Bootstrap» и как-то добавлять пользовательский CSS?

kvjava1
источник

Ответы:

28

Drupal 8 помещает заголовок страницы в отдельный блок (называемый заголовком страницы). Вы можете контролировать, когда и где этот блок отображается на странице макета блока: / admin / structure / block

acrosman
источник
2

Вы также можете использовать этот модуль для drupal 8 https://www.drupal.org/project/exclude_node_title

  • Этот модуль обрабатывает очень простую функциональность, решая что угодно, чтобы исключить заголовок узла из полной страницы узла или тизеры узла. Он обеспечивает флажок на страницах редактирования узла для более простого исключения. Также предоставляет возможность скрыть все заголовки определенного типа контента. В административном интерфейсе вы можете выбрать тип содержимого, для которого нужно скрыть заголовок.
Нэвин
источник
1
Большое спасибо за рекомендацию этого модуля, Навин. Я искал что-то простое, нестандартное, поэтому я выбрал ответ акросмана. Тем не менее, ваше предложение будет работать одинаково хорошо и на самом деле предпочтительнее, если вы хотите скрыть заголовок в зависимости от типа контента. Я сделал закладку для этого модуля на тот случай, если мне это понадобится. Еще раз большое спасибо за вашу помощь!
kvjava1
Я хотел бы предупредить пользователей об этом модуле; мы установили его и использовали его некоторое время, но столкнулись с несколькими неожиданными моментами: 1. Он не интегрирован с представлениями, поэтому вы не можете создать представление, которое указывает, для каких узлов их заголовки исключены ( drupal.org/ project / exclude_node_title / Issues / 3065469 ), и 2. он не сохраняется в ревизиях, поэтому, если вы просматриваете историю ревизий узла, он будет отображаться со своим заголовком, независимо от того, что, даже если эта ревизия была установлена ​​на исключить заголовок узла ( drupal.org/project/exclude_node_title/issues/3077257 ).
user1359
1

Вы можете сделать это полностью с помощью CSS. Вам нужно настроить таргетинг на тот узел, который вы используете в качестве домашней страницы.

Теперь Drupal-7 генерировал определенный класс для каждого узла. И таким образом было легко нацелиться на каждый отдельный узел, и мы смогли применить конкретный CSS к этому конкретному узлу.

Но в Drupal 8 это свойство недоступно, поэтому нам нужно добавить это. выполните следующие шаги. Я показываю это с помощью темы Bartik, так как я не знаком с темой Bootstrap. Вы также можете сделать с загрузочной темой. Это чистый CSS, поэтому нет необходимости в подгруппе.

1. Добавьте функцию в файл bartik.theme.

if ($node = \Drupal::request()->attributes->get('node')) {
    $variables['attributes']['class'][] = 'page-node-' . $node->id();
  }

в разделе,

function bartik_preprocess_html(&$variables) {   

}

Почему я показываю этот путь, потому что в нем уже есть другие коды function bartik_preprocess_html(&$variables), поэтому добавьте эту функцию в качестве последней строки.

Очистить кэш,

2. Получить CSS для этого узла

Теперь, если вы делаете Inspect elementна этом конкретном узле. Вы можете найти класс в <body></body>разделе как page-node-XX.

3. Перейдите в core / themes / bartik / css / components / page-title.css и добавьте в него следующий код:

.page-node-XX .page-title {
 display: none;
}

Очистить кэш,

Теперь, таким образом, вы можете настроить таргетинг на этот конкретный узел и использовать любой CSS, который хотите применить.

Кредит за код функции: Ссылка

CodeNext
источник
CodeNext, большое спасибо за подробный ответ. Я действительно смог сделать то, что мне нужно было сделать раньше, в качестве быстрого хака, добавив следующий CSS в файл styles.css моей подтемы: .page-header {display: none; } Однако ответ Акросмана, казалось, предлагал самый простой подход. Мне также понравился ваш ответ, потому что он помогает понять, как работает тематика в Drupal8. Еще раз спасибо! Я очень ценю это.
kvjava1