Другим относительно новым способом решения этой проблемы является использование надстройки Stash и подхода с использованием шаблонов.Этот метод сводит вас к одной вставке и имеет дополнительное преимущество, заключающееся в предоставлении вам централизованного шаблона «обертки» - по одному для каждой основной разметки страницы.В приведенном ниже примере предполагается, что вы просто добавили настраиваемые поля для обработки любых метаданных, относящихся к записи, которые вы хотите вставить в заголовок.Имея в виду эту идею, вот упрощенное представление базовой структуры, которую я недавно применял:
В вашем шаблоне вы применяете теги EE, чтобы определить логику того, что отправляется во внутреннюю оболочку
{embed="embeds/.inside-wrapper"}
{exp:channel:entries channel="channel_name" limit="1" dynamic="yes" disable="whatever|you|can|live|without"}
{!-- ENTRY SEO META DATA --}
{exp:stash:set name="entry_seo_title" scope="site"}{cf_channelprefix_seo_title}{/exp:stash:set}
{exp:stash:set name="entry_seo_description" scope="site"}{cf_channelprefix_seo_description}{/exp:stash:set}
{exp:stash:set name="entry_seo_keywords" scope="site"}{cf_channelprefix_seo_keywords}{/exp:stash:set}
{!-- ENTRY/PAGE CONTENT --}
{exp:stash:set name="entry_body_content" parse_tags="yes" parse_conditionals="yes" scope="site"}
Your page content here
{/exp:stash:set}
{/exp:channel:entries}
И затем в вашем шаблоне-обертке, который в конечном итоге будет содержать весь ваш HTML-код, но может быть разбит на фрагменты.для чего-то вроде заголовка, поскольку он будет использоваться совместно с другими шаблонами-оболочками, например:
<html>
<head>
<title>{exp:stash:get name="entry_seo_title"}</title>
<meta name="description" content="{exp:stash:get name="entry_seo_description"}" />
<meta name="keywords" content="{exp:stash:get name="entry_seo_keywords"}" />
</head>
<body>
{exp:stash:get name="entry_body_content"}
</body>
</html>