我想覆盖项目列表模板文件 core / themes / classy / templates / dataset / item-list.html.twig ,以便列出字段 field_slider_images 以及分别为 field_blog_tags 其字段的多个值。
我选择了"无序列表"在视图中。
请检查附件。
我创建了以下文件:
但是,这不会为字段列表呈现。
当我创建 item-list.html.twig 时,只有它才能访问。
但是,这两个字段都有不同的样式数据,我无法获取当前字段名称,该名称正在 item-list.html.twig 中加载它的数据。
答案 0 :(得分:0)
简单地看一下这个并没有“项目列表”来提出建议,这是非常不幸的。
在这种情况下,有两种选择:
/
/*add new variable to theme with suggestion name*/
function hook_theme_registry_alter(&$theme_registry) {
$theme_registry['item_list']['variables']['suggestion'] = '';
}
//send a value to newly added variable to use it build the suggestion
function hook_ENTITY_TYPE_view(array &$build, $entity, $display, $view_mode) {
//add condition here if field exists or whatever, do the same for other field
$build['field_slider_images']['#suggestion'] = 'field_slider_images';
}
//use newly added variable to build suggestion
function hook_theme_suggestions_THEME_HOOK(array $variables) {//THEME_HOOK=item_list
$suggestions = array();
if(isset($variables['suggestion'])){
$suggestions[] = 'item_list__' . $variables['suggestion'];
}
return $suggestions;
}
现在你应该能够使用item-list - field-slider-images.html.twig
第二个选项是做核心其他人做的事情:使用新主题
function hook_ENTITY_TYPE_view(array &$build, $entity, $display, $view_mode) {
//add condition here if field exists or whatever, do the same for other field
$build['field_slider_images']['#theme'] = array(
'item_list',
'item_list__field_slider_images',
);
}