In Drupal 7, this was possible. (See How to hide page title based on node type using template_preprocess_page().)

function MYTHEME_preprocess_page(&$variables) {
  if (!empty($variables['node']) && $variables['node']->type == 'concert') {
    $variables['show_title'] = FALSE;

What is the equivalent in Drupal 8?

3 Answers 3


OUTDATED - please use this solution instead ...

In D8 i used

function MYTHEME_preprocess_page(&$variables) {
    if (!empty($variables['node']) && $variables['node']->getType() == 'page') {
        $variables['title'] = '';

You still find the "node" object but you can't simply call the "type". The variable is protected, so you have to get the value via the function getType(). To get an overview install Devel and print with Kint the methods. This should only be a simple help, but maybe someone can deeper explain the concepts. Is it better to unset $variables['title'] in some way then to use $variables['title'] = ''?


Similar to @joekers it was not working for me either and had to use theme_preprocess_page_title() here is the details. Put this in your MY_THEME.theme file or modify that function if it already exists.

function MYTHEME_preprocess_page_title(&$variables) {
    $node = \Drupal::routeMatch()->getParameter('node');
    if( $node->getType() == 'page' ) {
        $variables['title'] = "";

To use it you might have to substitute the variable page with your content type machine name.

  • Thanks ... I used the page preprocess function in early D8 times - i'm shure the API has changed ... Feb 7, 2017 at 10:31
  • 1
    One 'weird' thing I found is that if I have node revisions turned on and I enter a previous node revision page, the code suggested here has some undesired results. It will throw an exception like this: "Call to a member function getType() on string". It looks like that $node = \Drupal::routeMatch()->getParameter('node') will deliver something which is not a node. By doing kat($node) on the result of the above code, I will actually get the node ID, not the node object itself. Let me know if my excplanation isn't clear enough. Thank you. Nov 8, 2017 at 12:00
  • Have not tried it but you are probably right ... drupal.org/node/2495703 and follow to the duplicate issue ... its getting fixed
    – GiorgosK
    Nov 8, 2017 at 14:52

For some reason this wasn't working for me in theme_preprocess_page() so I had to use theme_preprocess_page_title() as suggested by Twig debug.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.