diff -u b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php --- b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php +++ b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php @@ -330,13 +330,19 @@ $entity_id = $entity->id(); $sanitized_view_mode = strtr($view_mode, '.', '_'); - return array( - $entity_type_id . '__' . $sanitized_view_mode, - $entity_type_id . '__' . $bundle_name, - $entity_type_id . '__' . $bundle_name . '__' . $sanitized_view_mode, - $entity_type_id . '__' . $entity_id, - $entity_type_id . '__' . $entity_id . '__' . $sanitized_view_mode, - ); + $suggestions = array(); + $suggestions[] = $entity_type_id . '__' . $sanitized_view_mode; + + // Add suggestions with bundle_name only if bundles exists on entity type. + if ($entity->getEntityType()->getKey('bundle')) { + $suggestions[] = $entity_type_id . '__' . $bundle_name; + $suggestions[] = $entity_type_id . '__' . $bundle_name . '__' . $sanitized_view_mode; + } + + $suggestions[] = $entity_type_id . '__' . $entity_id; + $suggestions[] = $entity_type_id . '__' . $entity_id . '__' . $sanitized_view_mode; + + return $suggestions; } /**