wpseek.com
Bazujące na WordPress narzędzie wyszukiwania dla deweloperów i twórców motywów.
render_block_core_image › WordPress Function
Odn/a
Przestarzałyn/a
› render_block_core_image ( $attributes, $content, $block )
Parametry: (3) |
|
Powrót: |
|
Zdefiniowane na: |
|
Codex: |
Renders the `core/image` block on the server, adding a data-id attribute to the element if core/gallery has added on pre-render.
Źródło
function render_block_core_image( $attributes, $content, $block ) { if ( false === stripos( $content, '<img' ) ) { return ''; } $p = new WP_HTML_Tag_Processor( $content ); if ( ! $p->next_tag( 'img' ) || null === $p->get_attribute( 'src' ) ) { return ''; } if ( isset( $attributes['data-id'] ) ) { // Adds the data-id="$id" attribute to the img element to provide backwards // compatibility for the Gallery Block, which now wraps Image Blocks within // innerBlocks. The data-id attribute is added in a core/gallery // `render_block_data` hook. $p->set_attribute( 'data-id', $attributes['data-id'] ); } $link_destination = isset( $attributes['linkDestination'] ) ? $attributes['linkDestination'] : 'none'; $lightbox_settings = block_core_image_get_lightbox_settings( $block->parsed_block ); /* * If the lightbox is enabled and the image is not linked, adds the filter and * the JavaScript view file. */ if ( isset( $lightbox_settings ) && 'none' === $link_destination && isset( $lightbox_settings['enabled'] ) && true === $lightbox_settings['enabled'] ) { $suffix = wp_scripts_get_suffix(); if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { $module_url = gutenberg_url( '/build/interactivity/image.min.js' ); } wp_register_script_module( '@wordpress/block-library/image', isset( $module_url ) ? $module_url : includes_url( "blocks/image/view{$suffix}.js" ), array( '@wordpress/interactivity' ), defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : get_bloginfo( 'version' ) ); wp_enqueue_script_module( '@wordpress/block-library/image' ); /* * This render needs to happen in a filter with priority 15 to ensure that * it runs after the duotone filter and that duotone styles are applied to * the image in the lightbox. Lightbox has to work with any plugins that * might use filters as well. Removing this can be considered in the future * if the way the blocks are rendered changes, or if a new kind of filter is * introduced. */ add_filter( 'render_block_core/image', 'block_core_image_render_lightbox', 15, 2 ); } else { /* * Remove the filter if previously added by other Image blocks. */ remove_filter( 'render_block_core/image', 'block_core_image_render_lightbox', 15 ); } return $p->get_updated_html(); }