theming – Deshabilitar la caché de procesamiento para un tipo de nodo

Pregunta:

¿Hay alguna forma de deshabilitar la caché de procesamiento, que almacena en caché todos los nodos de forma predeterminada, para un tipo de contenido en particular X ?

Sé que podemos deshabilitar el sitio de la caché de procesamiento en todo el sitio comentando

$settings['cache']['bins']['render'] = ‘cache.backend.null’;

en settings.local.php . Pero este no es un enfoque ideal para mí, ya que necesito deshabilitar la caché de renderizado solo para un tipo de nodo en particular.

Además, necesito deshabilitar la caché para usuarios autenticados y anónimos para el tipo de contenido X

Cualquier sugerencia sobre el mismo sería muy apreciada.

Respuesta:

Como dijiste, deshabilitar el caché de procesamiento en todo el sitio no es una buena idea. Si necesita esto para un tipo de contenido, puede hacerlo en un enlace de visualización.

Si desea deshabilitar el almacenamiento en caché para usuarios autenticados y anónimos, debe configurar el caché max-age = 0 y activar el interruptor de interrupción para el caché de la página interna:

function MYMODULE_node_view_alter(array &$build, Drupal\Core\Entity\EntityInterface $entity, \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display) {
  if ($entity->bundle() == 'article') {
    $build['#cache']['max-age'] = 0;
    \Drupal::service('page_cache_kill_switch')->trigger();
  }
}

Lo mismo se puede implementar en un tema en un gancho de preproceso.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım