wpseek.com
Eine auf WordPress spezialiserte Suchmaschine für Entwickler und Theme-Autoren
update_ignored_hooked_blocks_postmeta is private and should not be used in themes or plugins directly.
update_ignored_hooked_blocks_postmeta › WordPress Function
Seit6.6.0
Veraltetn/v
› update_ignored_hooked_blocks_postmeta ( $post )
Zugriff: |
|
Parameter: |
|
Gibt zurück: |
|
Definiert in: |
|
Codex: |
Updates the wp_postmeta with the list of ignored hooked blocks where the inner blocks are stored as post content.
Currently only supportswp_navigation
post types.Quellcode
function update_ignored_hooked_blocks_postmeta( $post ) { /* * In this scenario the user has likely tried to create a navigation via the REST API. * In which case we won't have a post ID to work with and store meta against. */ if ( empty( $post->ID ) ) { return $post; } /* * Skip meta generation when consumers intentionally update specific Navigation fields * and omit the content update. */ if ( ! isset( $post->post_content ) ) { return $post; } /* * Skip meta generation when the post content is not a navigation block. */ if ( ! isset( $post->post_type ) || 'wp_navigation' !== $post->post_type ) { return $post; } $attributes = array(); $ignored_hooked_blocks = get_post_meta( $post->ID, '_wp_ignored_hooked_blocks', true ); if ( ! empty( $ignored_hooked_blocks ) ) { $ignored_hooked_blocks = json_decode( $ignored_hooked_blocks, true ); $attributes['metadata'] = array( 'ignoredHookedBlocks' => $ignored_hooked_blocks, ); } $markup = get_comment_delimited_block_content( 'core/navigation', $attributes, $post->post_content ); $existing_post = get_post( $post->ID ); // Merge the existing post object with the updated post object to pass to the block hooks algorithm for context. $context = (object) array_merge( (array) $existing_post, (array) $post ); $serialized_block = apply_block_hooks_to_content( $markup, $context, 'set_ignored_hooked_blocks_metadata' ); $root_block = parse_blocks( $serialized_block )[0]; $ignored_hooked_blocks = isset( $root_block['attrs']['metadata']['ignoredHookedBlocks'] ) ? $root_block['attrs']['metadata']['ignoredHookedBlocks'] : array(); if ( ! empty( $ignored_hooked_blocks ) ) { $existing_ignored_hooked_blocks = get_post_meta( $post->ID, '_wp_ignored_hooked_blocks', true ); if ( ! empty( $existing_ignored_hooked_blocks ) ) { $existing_ignored_hooked_blocks = json_decode( $existing_ignored_hooked_blocks, true ); $ignored_hooked_blocks = array_unique( array_merge( $ignored_hooked_blocks, $existing_ignored_hooked_blocks ) ); } if ( ! isset( $post->meta_input ) ) { $post->meta_input = array(); } $post->meta_input['_wp_ignored_hooked_blocks'] = json_encode( $ignored_hooked_blocks ); } $post->post_content = remove_serialized_parent_block( $serialized_block ); return $post; }