Place block region in node template I am trying to place a block region inside a news content type but it is not rendering.

node--news.html.twig:

&lt;article{{ attributes }} class="portal-article"&gt;

  &lt;h1 class="article-title"&gt;{{node.label}}&lt;/h1&gt;

  &lt;p class="article-date"&gt;{{ date }}&lt;/p&gt;

  &lt;div class="article-main-content"&gt;
    {{ content }}
  &lt;/div&gt;

  &lt;div class="article-sidebar"&gt;
      {{ page.article_sidebar }}
  &lt;/div&gt;

&lt;/article&gt;


How can I get the block to render inside of a node?
This is probably the solution, "Making region content available to node templates in Drupal 8": http://atendesigngroup.com/blog/making-region-content-available-node-templates-drupal-8



Replace “THEME” with your theme name below:

/**
* Implements hook_preprocess_node() for NODE document templates.
*/
function THEME_preprocess_node(&amp;$variables) {
  // Allowed view modes
  $view_mode = $variables['view_mode']; // Retrieve view mode
  $allowed_view_modes = ['full']; // Array of allowed view modes (for performance so as to not execute on unneeded nodes)

  // If view mode is in allowed view modes list, pass to THEME_add_regions_to_node()
  if(in_array($view_mode, $allowed_view_modes)) {
    // Allowed regions (for performance so as to not execute for unneeded region)
    $allowed_regions = ['primary_content'];
    THEME_add_regions_to_node($allowed_regions, $variables);
  }
}

/**
* THEME_add_regions_to_node
*/

function THEME_add_regions_to_node($allowed_regions, &amp;$variables) {
  // Retrieve active theme
  $theme = \Drupal::theme()-&gt;getActiveTheme()-&gt;getName();

  // Retrieve theme regions
  $available_regions = system_region_list($theme, 'REGIONS_ALL');

  // Validate allowed regions with available regions
  $regions = array_intersect(array_keys($available_regions), $allowed_regions);

  // For each region
  foreach ($regions as $key =&gt; $region) {

    // Load region blocks
    $blocks = entity_load_multiple_by_properties('block', array('theme' =&gt; $theme, 'region' =&gt; $region));

    // Sort ‘em
    uasort($blocks, 'Drupal\block\Entity\Block::sort');

    // Capture viewable blocks and their settings to $build
    $build = array();
    foreach ($blocks as $key =&gt; $block) {
      if ($block-&gt;access('view')) {
        $build[$key] = entity_view($block, 'block');
      }
    }

    // Add build to region
    $variables[$region] = $build;
  }
}


After clearing caches, I can now print content specified in Drupal’s block layout using my node template files. For example, if I’ve specified primary_content in $allowed_regions, then I can access it via node--node_type.html.twig with:

{{ primary_content }}