Контекстный фильтр с термином таксономии, которого нет в URL-адресе
Я надеюсь, что кто-нибудь, пожалуйста, поможет мне приручить зверя, известного как контекстные фильтры. :) У меня есть ряд узлов, которым присвоен определенный термин таксономии (все из одного и того же vocab), но для моего URL-адреса я не включаю их:
Например:
Название словаря = видео
Узел имеет термины:
-food
--vegetable
---carrot
Назначен ему, но единственный URL, который мне нужен, это:
site.com/videos/title-of-node
, А затем все остальные узлы, у которых есть термины на все они будут находиться в каталоге "видео":
site.com/videos/title-of-another-node
site.com/videos/title-of-yet-another-node
Я создал представление с контекстным фильтром, в котором я хочу отображать только узлы с термином морковь. И это отлично работает при предварительном просмотре на странице просмотров, но при загрузке фактической страницы я получаю список ВСЕХ узлов под термином "еда", потому что у меня есть "КОГДА ЗНАЧЕНИЕ ФИЛЬТРА ОТСУТСТВУЕТ В URL-АДРЕСЕ ->Отображать все результаты для указанного поля"
Моя главная проблема, я думаю, заключается в том, что "Контекстуальный значения фильтра предоставляются URL-адресом." И мои условия не указаны в URL-адресе. Поэтому мне как-то нужно вытащить термины, связанные с каждым узлом.
Любая помощь будет очень признательна!
1 answers
Вместо создания представления узла создайте представление таксономии.
В котором предусмотрены два отношения:
- Термин таксономии: Содержание термина;
- Термин таксономии: Контент, использующий {Имя поля таксономии в типе контента}*;
- Добавьте контекстный фильтр типа Содержимое: Заголовок; Используйте первое соотношение для контекстного фильтра, внесите необходимые изменения в опцию "Больше", такие как изменение нижнего регистра на тире и т. Д.;
- Добавьте необходимое поля из содержимого с отношением, равным 2);
Вы готовы идти.
РЕДАКТИРОВАТЬ: В соответствии с обсуждением возникла еще одна необходимость также показать узлы под термином и его под терминами.
Создайте представление содержимого типа;
Добавьте необходимые поля;
Добавьте контекстный фильтр типа Содержимое: Имеет идентификатор термина таксономии (с глубиной) и выберите значение глубины, равное глубине иерархии, которая у вас есть в таксономия.
Теперь, когда вы передадите идентификатор термина в качестве входных данных, он покажет все узлы под этим термином таксономии, включая дочерние узлы.
Если вы хотите изменить URL-адрес, чтобы вместо идентификатора термина было указано имя термина, выполните следующие действия.
В представлении укажите путь как таксономия/термин/% это переопределит путь таксономии по умолчанию;
Установите Модуль Pathauto это зависит от токенов модуля, поэтому необходимо установить это также;
В Конфигурации ->Псевдонимы URL-адресов у вас есть вкладка под названием Шаблоны;
Установите шаблон "ПУТИ ТЕРМИНОВ ТАКСОНОМИИ" таким, каким вы хотели бы его видеть. Убедитесь, что последнее значение [термин:имя], поэтому, если вы хотите, чтобы путь был категорией/морковью, вы должны указать его как категория/[термин:имя];
Если вы уже добавили термины таксономии, вам нужно будет выполнить "МАССОВОЕ ОБНОВЛЕНИЕ", которое снова является вкладкой на странице псевдонима URL.
Теперь, когда вы посещаете страницу категория/имя термина, вы увидите все узлы под термином, включая дочерние термины.