Views: Подстановка значения поля в заголовок

29 ноября 2022 в 17:22

Дано:
Есть термины таксономии, у которых есть поле (текстовая строка).

Вопрос следующий.
Как во вьювсе, показывающем один термин, вывести вместо заголовка вьювса значение этого текстового поля? Скорее всего через контекстные фильтры, но уже всю голову сломал - не получается.

Заранее спасибо.

Комментарии

В настройках аргумента
Переопределить заголовок и там %1

Если сложно - можете сделать блок вьюху, которая выводит название термина или любое его поле.

29 ноября 2022 в 22:45

Мне удалось таким образом вывести только ИМЯ термина, но не значение текстового поля, находящимся в термине.
Например, к термину с именем "Женские" можно добавить значение (дополнительного) поля (field_anytext) "колготки". Так вот в заголовок получается только Женские вывести (с помощью %1), а колготки никак (((

Дополнительный блок не решает проблемы с H1 и метатегом title.

30 ноября 2022 в 2:12

Метатег можно задать отельно от views. На странице шаблонов метатегов можно же задать по умолчанию для термина и там токен поля поставить?

30 ноября 2022 в 13:31

Если ваш вьюс типа "содержимое", то чтобы увидеть другие поля, связанные с терминами таксономии, вам нужно соответствующую связь добавить в ваш вьюс.

30 ноября 2022 в 11:59

Тогда все поля термина и так должны быть доступны. Без всяких связей. Вы уверены, что их нет в списке полей?

30 ноября 2022 в 15:04

Поля есть. Вопрос, как заменить заголовок страницы значением из таких полей? Желательно с метатегом title автоматом.

30 ноября 2022 в 16:47

хуком можно.

<?php
/**
* Implements hook_views_pre_render
*/
function modulname_views_pre_render(&$view) {
   if (
$view->name == 'view_name' && $view->current_display == 'view_current_display') {
        
        
$view->build_info['title'] = $new_title;
  } 
}
?>

modulname, view_name и view_current_display замените на свои. И останется разобраться, как программно получить ваше поле ($new_title).
Можно, например, загрузить $term = taxonomy_term_load(id_термина);
Затем вывести dpm($term) (если у вас установлен devel) и посмотреть, как обратиться к нужному полю;

30 ноября 2022 в 17:27