content
contiene las matrices de renderizado basadas en los formateadores configurados.
Si desea acceder a los valores reales, desea acceder a ellos a través del objeto de entidad. Por lo general, eso ya está disponible para su plantilla, por ejemplo node
. Para su caso, es un poco especial porque el contenido de bloque se representa en el contenido del bloque sin su propia plantilla, por lo que debe ponerlo a su disposición de la yourtheme_preprocess_block($variables)
siguiente manera:
if (isset($variables['elements']['content']['#block_content'])) {
$variables['block_content'] = $variables['elements']['content']['#block_content'];
}
Luego, puede acceder a un valor de campo con block_content.field_name.property
. Entonces en tu caso block_content.field_align.value
,. La propiedad es value
para la mayoría de los tipos de campo, para referencias, puede usar target_id
para el ID o entity
para el objeto de entidad referenciado. Sí, puede acceder directamente a los campos en eso, pero asegúrese de verificar siempre que exista una referencia; de lo contrario, puede terminar con errores fatales o excepciones. Para acceder a la etiqueta de una referencia de término, por ejemplo, puede acceder a ella como block_content.field_tags.entity.name.value
.
Si no especifica el campo delta, el valor predeterminado es el primero. Si desea acceder a un delta diferente, puede usar, entity.field_name.1.value
etc. También puedes recorrerlos.
Todo esto se asigna directamente a PHP, también puede hacerlo $block_content->field_tags->entity->name->value
en preprocesos y otros lugares donde tiene el contenido de bloque.