Inclusión de una parte de plantilla
Muchos desarrolladores prefieren almacenar los códigos del encabezado / pie de página en un archivo separado y luego incluir ese archivo en page.html.twig.
Proceso
Supongamos que has creado el siguiente archivo en la carpeta de tu tema para el encabezado:
THEME_NAME/templates/includes/header.html.twig
Y ahora quieres incluir ese archivo en:
page.html.twig
Método recomendado
El método correcto para los temas de Drupal 8 es usar los espacios de nombres de Twig para declarar el directorio "templates" del tema actual. Aquí un ejemplo:
{% include '@THEME_NAME/includes/header.html.twig' %}
A continuación un ejemplo tomado de un tema activo en Drupal.org llamado Architect.
"@architect" hace referencia a la carpeta /templates dentro del directorio del tema activo (architect).
{% include '@architect/includes/header.html.twig' %}
El espacio de nombres de Twig se crea automáticamente en Drupal 8 cuando instalas tu tema y apunta al directorio /templates de tu tema. Básicamente, escribir "@theme_name" en un include Twig (como se mostró arriba) hará referencia a la ruta "your_site.com/themes/theme_name/templates" en tu servidor.
Método no recomendado
Un método posible (pero no recomendado) es usar el siguiente código para incluir ese archivo.
{# NO recomendado #}
{% include directory ~ '/templates/includes/header.html.twig' %}
La información anterior puede funcionar, pero causará un error de servidor cuando se use con un subtema.
Extensión de la funcionalidad de espacios de nombres
El módulo Components Library provee una organización más flexible y avanzada de las plantillas Twig en Drupal 8, que puede trabajar con la funcionalidad de "embed" de Twig.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.