Drupal 9中自定义主题的Views RSS模板无法生效的解决咨询
解决Drupal 9自定义主题中views-view-row-rss模板不加载的问题
确认模板命名与优先级调整
首先检查模板文件名是否完全匹配views-view-row-rss.html.twig(Linux环境下区分大小写)。由于views_rss模块自带模板优先级可能更高,可通过主题钩子建议提升自定义模板权重:
在主题的CUSTOM_theme.theme文件中添加:function CUSTOM_theme_theme_suggestions_views_view_row_alter(array &$suggestions, array $variables) { $suggestions[] = 'views_view_row_rss__custom'; }然后将自定义模板重命名为
views-view-row-rss--custom.html.twig,该命名的模板优先级会高于模块自带版本。清除缓存并开启模板调试
修改模板或.theme文件后必须清除Drupal缓存,可使用Drush命令drush cr,或后台「配置→性能」页面手动清除。
开启模板调试验证加载情况:编辑sites/default/services.yml,添加/修改配置:parameters: twig.config: debug: true开启后,页面源代码会注释当前加载的模板路径及所有候选模板,便于排查优先级问题。
直接修改主题注册表权重
若上述方法无效,可在theme_registry_alter中强制调整模板优先级:function CUSTOM_theme_registry_alter(&$theme_registry) { if (isset($theme_registry['views_view_row_rss'])) { // 将主题模板路径放到候选列表最前端 $custom_template_path = drupal_get_path('theme', 'CUSTOM_theme') . '/templates/views-view-row-rss.html.twig'; array_unshift($theme_registry['views_view_row_rss']['template_files'], $custom_template_path); // 设置更低的权重值(数值越小优先级越高) $theme_registry['views_view_row_rss']['weight'] = -10; } }替换
CUSTOM_theme为你的实际主题名称,修改后务必清除缓存。检查基础启用条件
- 确认自定义主题已启用并设置为当前使用的主题;
- 确认
views_rss模块处于启用状态; - 检查对应视图的行样式是否选择了「RSS item」,只有该样式才会调用
views_view_row_rss模板。
内容的提问来源于stack exchange,提问作者WebR
相关产品推荐
相关产品推荐

