Changeset 56634 for trunk/src/wp-includes/blocks.php
- Timestamp:
- 09/20/2023 04:47:44 PM (14 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/blocks.php
r56620 r56634 762 762 763 763 /** 764 * Insert a parsed block into a parent block's inner blocks.765 *766 * Given a parsed block, a block index, and a chunk index, insert another parsed block767 * into the parent block at the given indices.768 *769 * Note that the this mutates the parent block by inserting into the parent's `innerBlocks`770 * array, and by updating the parent's `innerContent` array accordingly.771 *772 * @since 6.4.0773 *774 * @param array $parent_block The parent block.775 * @param int $block_index The index specifying the insertion position among the parent block's inner blocks.776 * @param int $chunk_index The index specifying the insertion position among the parent block's inner content chunks.777 * @param array $inserted_block The block to insert.778 * @return void779 */780 function insert_inner_block( &$parent_block, $block_index, $chunk_index, $inserted_block ) {781 array_splice( $parent_block['innerBlocks'], $block_index, 0, array( $inserted_block ) );782 783 /*784 * Since WP_Block::render() iterates over `inner_content` (rather than `inner_blocks`)785 * when rendering blocks, we also need to insert a value (`null`, to mark a block786 * location) into that array.787 */788 array_splice( $parent_block['innerContent'], $chunk_index, 0, array( null ) );789 }790 791 /**792 * Prepend a parsed block to a parent block's inner blocks.793 *794 * Given a parsed block, prepend another parsed block to the parent block's inner blocks.795 *796 * Note that the this mutates the parent block by inserting into the parent's `innerBlocks`797 * array, and by updating the parent's `innerContent` array accordingly.798 *799 * @since 6.4.0800 *801 * @param array $parent_block The parent block.802 * @param array $inserted_block The block to insert.803 * @return void804 */805 function prepend_inner_block( &$parent_block, $inserted_block ) {806 $chunk_index = 0;807 for ( $index = 0; $index < count( $parent_block['innerContent'] ); $index++ ) {808 if ( is_null( $parent_block['innerContent'][ $index ] ) ) {809 $chunk_index = $index;810 break;811 }812 }813 insert_inner_block( $parent_block, 0, $chunk_index, $inserted_block );814 }815 816 /**817 * Append a parsed block to a parent block's inner blocks.818 *819 * Given a parsed block, append another parsed block to the parent block's inner blocks.820 *821 * Note that the this mutates the parent block by inserting into the parent's `innerBlocks`822 * array, and by updating the parent's `innerContent` array accordingly.823 *824 * @since 6.4.0825 *826 * @param array $parent_block The parent block.827 * @param array $inserted_block The block to insert.828 * @return void829 */830 function append_inner_block( &$parent_block, $inserted_block ) {831 $chunk_index = count( $parent_block['innerContent'] );832 for ( $index = count( $parent_block['innerContent'] ); $index > 0; $index-- ) {833 if ( is_null( $parent_block['innerContent'][ $index - 1 ] ) ) {834 $chunk_index = $index;835 break;836 }837 }838 insert_inner_block( $parent_block, count( $parent_block['innerBlocks'] ), $chunk_index, $inserted_block );839 }840 841 /**842 764 * Given an array of attributes, returns a string in the serialized attributes 843 765 * format prepared for post content.
Note: See TracChangeset
for help on using the changeset viewer.