我在实施网站时正在慢慢学习D8,并决定关注https://www.webwash.net/how-to-create-powerful-container-paragraphs-in-drupal-8/来启动我的目标网页。
启动hook_preprocess部分,我假设这将进入:
主题/ MYBOOTSTRAPSUBTHEME / MYTHEMENAME.theme
<?php
/**
* @file
* Bootstrap sub-theme.
*
* Place your custom PHP code in this file.
*/
function MYSUBTHEMENAME_preprocess_paragraph__banner(&$variables) {
$paragraph = $variables['paragraph'];
if (!$paragraph->field_image->isEmpty()) {
$image = $paragraph->field_image->entity->url();
$variables['attributes']['style'][] = 'background-image: url("' . $image . '");';
$variables['attributes']['style'][] = 'background-size: cover;';
$variables['attributes']['style'][] = 'background-position: center center;';
}
}
我已经从配置页面清除了缓存而没有运气。这是使用MAMP(PHP 7.1.6)构建的localhost - 如果有任何用途。
我仔细检查了教程显示的所有配置,并且所有名称都正确(banner,field_image)。我似乎无法找到问题!
有什么建议吗?
答案 0 :(得分:0)
如果不是拼写错误,则您的主题名称不是MYBOOTSTRAPSUBTHEME,而是您所说的MYTHEMENAME:
THEMES / MYBOOTSTRAPSUBTHEME / MYTHEMENAME.theme
因此应调用该函数:
function MYTHEMENAME_preprocess_paragraph__banner(&$variables) {
// If devel module is enabled you may check if it is working
// by adding some debug output:
// dpm('debug');
}
确保目录文件和函数名称使用小写字母。实现该功能后,不要忘记重建缓存。不需要树枝图样文件parass-banner.twig,它也可以正常工作。