функция since 6.4.0

make_before_block_visitor()

Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.

Сигнатура

make_before_block_visitor( array $hooked_blocks, WP_Block_Template|WP_Post|array $context, callable $callback = 'insert_hooked_blocks' ): callable

Описание

Возвращаемую функцию можно передать как аргумент $pre_callback в traverse_and_serialize_block(s), где она внедрит атрибут темы во все блоки Template Part и добавит перед ними разметку любых блоков, подключённых перед заданным блоком, а также в качестве first_child его родителя соответственно.
Эта функция предназначена только для внутреннего использования.

Оригинал (английский)

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.

Параметры

$hooked_blocks array обязательный
Массив блоков, подключённых к другому заданному блоку.
$context WP_Block_Template|WP_Post|array обязательный
Блочный шаблон, часть шаблона, объект записи или паттерн, которому принадлежат блоки.
$callback callable необязательный = 'insert_hooked_blocks'
Функция, которая будет вызываться для каждого блока, чтобы сформировать разметку для заданного списка блоков, подключённых к нему. Значение по умолчанию: 'insert_hooked_blocks'.

Возвращаемое значение

callable

Исходный код

wp-includes/blocks.php:1541

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;
	};
}

История изменений

ВерсияОписание
6.5.0 Added $callback argument.
6.4.0 Introduced.

Что будем искать? Например,Продвижение

Этот сайт использует куки-файлы. Оставаясь на сайте, Вы соглашаетесь на их использование. Для получения дополнительной информации, пожалуйста, ознакомьтесь с политикой в отношении персональных данных.