content
contém as matrizes de renderização com base nos formatadores configurados.
Se você deseja acessar os valores reais, deseja acessá-los através do objeto de entidade. Geralmente, isso já está disponível para o seu modelo, por exemplo node
. Para o seu caso, é um pouco especial porque o block_content é renderizado no conteúdo do bloco sem seu próprio modelo, então você deve disponibilizá-lo da yourtheme_preprocess_block($variables)
seguinte maneira:
if (isset($variables['elements']['content']['#block_content'])) {
$variables['block_content'] = $variables['elements']['content']['#block_content'];
}
Em seguida, você pode acessar um valor de campo com block_content.field_name.property
. Então, no seu caso block_content.field_align.value
. A propriedade é value
para a maioria dos tipos de campos, para referências, você pode usar target_id
para o ID ou entity
para o objeto de entidade referenciado. Sim, você pode acessar diretamente os campos sobre isso, mas verifique sempre se existe uma referência, caso contrário, poderá acabar com erros ou exceções fatais. Para acessar o rótulo de uma referência de termo, por exemplo, você pode acessá-lo como block_content.field_tags.entity.name.value
.
Se você não especificar o delta do campo, o padrão será o primeiro. Se você deseja acessar um delta diferente, pode usar entity.field_name.1.value
e assim por diante. Você também pode fazer um loop sobre eles.
Isso tudo mapeia diretamente para o PHP, você também pode fazer $block_content->field_tags->entity->name->value
no pré-processo e em outros lugares onde você tem o block_content.