WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru
функция не описана

excerpt_remove_blocks() WP 5.0.0

Parses blocks out of a content string, and renders those appropriate for the excerpt.

As the excerpt should be a small string of text relevant to the full post content, this function renders the blocks that are most likely to contain such text.

Хуки из функции
Возвращает

Строку. The parsed and filtered content.

Использование

excerpt_remove_blocks( $content );
$content(строка) (обязательный)
The content to parse.

Список изменений

С версии 5.0.0 Введена.

Код excerpt_remove_blocks() WP 5.5.3

<?php
function excerpt_remove_blocks( $content ) {
	$allowed_inner_blocks = array(
		// Classic blocks have their blockName set to null.
		null,
		'core/freeform',
		'core/heading',
		'core/html',
		'core/list',
		'core/media-text',
		'core/paragraph',
		'core/preformatted',
		'core/pullquote',
		'core/quote',
		'core/table',
		'core/verse',
	);

	$allowed_blocks = array_merge( $allowed_inner_blocks, array( 'core/columns' ) );

	/**
	 * Filters the list of blocks that can contribute to the excerpt.
	 *
	 * If a dynamic block is added to this list, it must not generate another
	 * excerpt, as this will cause an infinite loop to occur.
	 *
	 * @since 5.0.0
	 *
	 * @param array $allowed_blocks The list of allowed blocks.
	 */
	$allowed_blocks = apply_filters( 'excerpt_allowed_blocks', $allowed_blocks );
	$blocks         = parse_blocks( $content );
	$output         = '';

	foreach ( $blocks as $block ) {
		if ( in_array( $block['blockName'], $allowed_blocks, true ) ) {
			if ( ! empty( $block['innerBlocks'] ) ) {
				if ( 'core/columns' === $block['blockName'] ) {
					$output .= _excerpt_render_inner_columns_blocks( $block, $allowed_inner_blocks );
					continue;
				}

				// Skip the block if it has disallowed or nested inner blocks.
				foreach ( $block['innerBlocks'] as $inner_block ) {
					if (
						! in_array( $inner_block['blockName'], $allowed_inner_blocks, true ) ||
						! empty( $inner_block['innerBlocks'] )
					) {
						continue 2;
					}
				}
			}

			$output .= render_block( $block );
		}
	}

	return $output;
}