Есть несколько способов сделать это (как и большинство задач в EE). Вы можете изучить использование динамических параметров в EE. Динамические параметры EE позволяют вашим пользователям выбирать различные параметры (включая год), но они также отключают кэширование для шаблона и не обновляют URL.
Вы также можете использовать сегменты URL, чтобы контролировать, какой год отображается. Это гораздо чаще, чем использование динамических параметров. Допустим, ваша страница индекса новостей имеет значение http://site.com/news.. Вы можете активировать функцию «архивирования», добавив второй сегмент URL, например: http://site.com/news/archive.
Затем в вашем шаблоне вы можете использовать простые условные выражения для запуска определенного кода для макета архива. Вот как будет выглядеть ваша страница при таком подходе (важные изменения выделены жирным шрифтом):
{exp:channel:entries
channel="news-items"
disable="categories|category_fields|trackbacks"
dynamic="off"
require_entry="yes"
sort="desc"
search:news-item-featured="featured"
limit="1"
{if segment_2 == 'archive'}year="{segment_3}"{/if}
}
<div align="left">
<h2 align="center" style="margin-top: 0pt; margin-bottom: 0pt;">{title}</h2>
</div>
{if news-item-main-image}
{exp:imgsizer:size src="{news-item-main-image}" width="352"}
<p style="margin-top: 0pt;"><img align="middle" width="352" src="{sized}"></p>
{/exp:imgsizer:size}
{/if}
{news-item-intro-text}
<p><a href="{title_permalink='news-item'}">Click here to read the full story.</a></p>
{/exp:channel:entries}
{exp:channel:entries
channel="news-items"
disable="categories|category_fields|trackbacks"
dynamic="off"
require_entry="yes"
limit="19"
paginate="bottom"
paginate_base="/news"
**{if segment_2 == 'archive'}year="{segment_3}"{/if}**
}
{if count == '1'}
<h3>News History **{if segment_2 == 'archive'} for {segment_3}{/if}**</h3>
<ul>
{/if}
<li>
<h3><a href="{title_permalink='news-item'}">{title}</a></h3>
<input type="hidden" value="" name="news_id">{entry_date format="%n/%j/%Y"} -
</li>
{if count == total_results}
</ul>
{/if}
{paginate}
<p>
{pagination_links}
{current_page} of {total_pages}
</p>
{/paginate}
{/exp:channel:entries}
Обратите внимание, что я просто добавил несколько условных тегов {if segment_2 == 'archive'}{/if}
в ваш код.
Кроме того, вы можете отказаться от выпадающего меню выбора и использовать плагин Low free Yearly Archives для EE. Этот плагин дает вам большую гибкость для отображения годовых / ежемесячных архивных ссылок. Если вы действительно хотите сохранить меню выбора, вы можете добавить в микс JavaScript, чтобы каждая опция перенаправляла пользователя на соответствующий URL-адрес архива.