MYTHEME_preprocess_paragraph__PARAGRAPHTYPE未加载

时间:2017-07-31 21:36:38

标签: drupal-8 paragraphs

我在实施网站时正在慢慢学习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)。我似乎无法找到问题!

有什么建议吗?

1 个答案:

答案 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,它也可以正常工作。