Вы можете сделать это намного проще, используя макеты: https://docs.expressionengine.com/v2/templates/layouts.html в основном, у вас будет шаблон-обертка, который содержит ваш базовый шаблон, и вы будете передавать содержимое из другого шаблона в этот шаблон.Таким образом, вам нужно всего лишь использовать тег channel: records один раз, чтобы установить все данные.это базовый шаблон, в котором я устанавливаю переменные:
{layout="_partials/_wrapper"}
{exp:channel:entries
channel="pages"
disable="categories|pagination|member_data|relationships"}
{layout:set name="extra_header_content"}<script src="/assets/js/my_extra_script.js">{/layout:set}
{layout:set name="browser_title"}{browser_title}{/layout:set}
{layout:set name="seo_description"}{seo_description}{/layout:set}
{layout:set name="page_title"}{page_title}{/layout:set}
{layout:set name="body_content"}{body_text}{/layout:set}
{/exp:channel:entries}
смотрите, как я встраиваю шаблон макета в первую строку.Мой шаблон оболочки выглядит так:
<!doctype html>
<html class="no-js" lang="nl" dir="ltr">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{layout:browser_title}</title>
<meta name='description' content='{layout:seo_description}' />
<meta name="twitter:description" content="{layout:seo_description}" />
<meta property="og:description" content="{layout:seo_description}">
{layout:extra_header_content}
</head>
<body>
<h1>{layout:page_title}</h1>
{layout:body_content}
</body>
</html>
, так как вы находитесь в EE 2, вам нужно будет создать поля для каждого заголовка браузера в его собственной группе полей.это может быть утомительно, однако, если вы называете поля немного логически, вы можете использовать preload_replace https://docs.expressionengine.com/v2/templates/globals/preload_replacement.html, чтобы упростить ваши шаблоны:
скажем, у вас есть канал с названием news, вызовите ваше поле "news_browser_title"и для канала под названием pages создайте поле с именем" pages_browser_title "
Теперь в своем шаблоне вы можете использовать его следующим образом:
{layout="_partials/_wrapper"}
{preload_replace:channel="pages"}
{exp:channel:entries
channel="pages"
disable="categories|pagination|member_data|relationships"}
{layout:set name="extra_header_content"}<script src="/assets/js/my_extra_script.js">{/layout:set}
{layout:set name="browser_title"}{{channel}_browser_title}{/layout:set}
{layout:set name="seo_description"}{{channel}_seo_description}{/layout:set}
{layout:set name="page_title"}{{channel}_page_title}{/layout:set}
{layout:set name="body_content"}{{channel}_body_text}{/layout:set}
{/exp:channel:entries}
Обновление: Вы можетеПоместите шаблон оболочки в любую группу шаблонов, которые вам нравятся.У меня есть папка _partials, в которой хранятся все мои шаблоны, которые я встраиваю в другие шаблоны.Скажем, у вас есть настройка группы шаблонов, подобная этой:
_partials
-_wrapper
-_another_template
-_some_other_template
blog
-index
-item
news
-index
-item
в каждом из ваших шаблонов в блоге или новостях, вы можете встроить один и тот же шаблон-оболочку с {layout = "_ partials / _wrapper"}, потому что он просто беретtemplate_group / template_name в качестве входных данных.
Если вам нужна дополнительная помощь, просто перейдите на https://expressionengine.stackexchange.com/ для получения более конкретных рекомендаций EE