acf_add_block_meta_values()
Loads ACF field values from the post meta if the block is configured to do so.
Хуков нет.
Возвращает
Массив
.
Использование
acf_add_block_meta_values( $block, $post_id );
- $block(массив) (обязательный)
- The block to get values for.
- $post_id(int) (обязательный)
- The ID of the post to retrieve meta from.
Список изменений
С версии 6.3 | Введена. |
Код acf_add_block_meta_values() acf add block meta values ACF 6.4.2
function acf_add_block_meta_values( $block, $post_id ) { // Bail if the block already has data (i.e. previewing an update). if ( ! is_array( $block ) || ! empty( $block['data'] ) ) { return $block; } // Bail if block doesn't load from meta. if ( ! acf_block_uses_post_meta( $block ) ) { return $block; } // Bail if we don't have a post ID or block ID. if ( empty( $post_id ) || empty( $block['id'] ) ) { return $block; } $fields = acf_get_block_fields( $block ); if ( empty( $fields ) ) { return $block; } $values = array(); $store = acf_get_store( 'values' ); $block_id = acf_ensure_block_id_prefix( $block['id'] ); foreach ( $fields as $field ) { $value = acf_get_value( $post_id, $field ); // Make sure we got a value (i.e. $allow_load = true). if ( ! $store->has( "{$post_id}:{$field['name']}" ) ) { continue; } $store->set( "{$block_id}:{$field['name']}", $value ); $values[ $field['name'] ] = $value; $values[ '_' . $field['name'] ] = $field['key']; // TODO: Is there a better way to generate this? } $block['data'] = $values; acf_set_data( $block_id . '_loaded_meta_values', true ); return $block; }