content
berisi array render berdasarkan formatters yang dikonfigurasi.
Jika Anda ingin mengakses nilai aktual, Anda ingin mengaksesnya melalui objek entitas. Biasanya, itu sudah tersedia untuk template Anda, misalnya node
. Untuk kasus Anda, ini agak istimewa karena block_content di-render dalam konten blok tanpa templatnya sendiri, jadi Anda harus membuatnya sendiri yourtheme_preprocess_block($variables)
seperti ini:
if (isset($variables['elements']['content']['#block_content'])) {
$variables['block_content'] = $variables['elements']['content']['#block_content'];
}
Kemudian, Anda dapat mengakses nilai bidang dengan block_content.field_name.property
. Jadi dalam kasus Anda block_content.field_align.value
,. Properti ini value
untuk sebagian besar jenis bidang, untuk referensi, Anda dapat menggunakan target_id
ID atau entity
objek entitas yang direferensikan. Ya, Anda dapat langsung mengakses bidang itu, tetapi pastikan untuk selalu memeriksa bahwa ada referensi jika tidak, Anda dapat berakhir dengan kesalahan fatal atau pengecualian. Untuk mengakses label referensi istilah misalnya, Anda dapat mengaksesnya sebagai block_content.field_tags.entity.name.value
.
Jika Anda tidak menentukan delta bidang, standarnya adalah yang pertama. Jika Anda ingin mengakses delta yang berbeda, Anda dapat menggunakan entity.field_name.1.value
dan sebagainya. Anda juga dapat mengulanginya.
Ini semua peta langsung ke PHP, Anda juga dapat melakukannya $block_content->field_tags->entity->name->value
di preprocess dan tempat-tempat lain di mana Anda memiliki block_content.