make_before_block_visitor()
Returns a function that injects the theme attribute into, and hooked blocks before, a given block.
The returned function can be used as $pre_callback argument to traverse_and_serialize_block(s), where it will inject the theme attribute into all Template Part blocks, and prepend the markup for any blocks hooked before the given block and as its parent's first_child, respectively.
This function is meant for internal use only.
Внутренняя функция — эта функция рассчитана на использование самим ядром. Не рекомендуется использовать эту функцию в своем коде.
Хуков нет.
Возвращает
callable
. A function that returns the serialized markup for the given block, including the markup for any hooked blocks before it.
Использование
make_before_block_visitor( $hooked_blocks, $context, $callback );
- $hooked_blocks(массив) (обязательный)
- An array of blocks hooked to another given block.
- $context(WP_Block_Template|WP_Post|массив) (обязательный)
- A block template, template part, wp_navigation post object, or pattern that the blocks belong to.
- $callback(callable)
- A function that will be called for each block to generate the markup for a given list of blocks that are hooked to it.
По умолчанию: 'insert_hooked_blocks'
Список изменений
С версии 6.4.0 | Введена. |
С версии 6.5.0 | Added $callback argument. |
Код make_before_block_visitor() make before block visitor WP 6.6.2
function make_before_block_visitor( $hooked_blocks, $context, $callback = 'insert_hooked_blocks' ) { /** * Injects hooked blocks before the given block, injects the `theme` attribute into Template Part blocks, and returns the serialized markup. * * If the current block is a Template Part block, inject the `theme` attribute. * Furthermore, prepend the markup for any blocks hooked `before` the given block and as its parent's * `first_child`, respectively, to the serialized markup for the given block. * * @param array $block The block to inject the theme attribute into, and hooked blocks before. Passed by reference. * @param array $parent_block The parent block of the given block. Passed by reference. Default null. * @param array $prev The previous sibling block of the given block. Default null. * @return string The serialized markup for the given block, with the markup for any hooked blocks prepended to it. */ return function ( &$block, &$parent_block = null, $prev = null ) use ( $hooked_blocks, $context, $callback ) { _inject_theme_attribute_in_template_part_block( $block ); $markup = ''; if ( $parent_block && ! $prev ) { // Candidate for first-child insertion. $markup .= call_user_func_array( $callback, array( &$parent_block, 'first_child', $hooked_blocks, $context ) ); } $markup .= call_user_func_array( $callback, array( &$block, 'before', $hooked_blocks, $context ) ); return $markup; }; }