plugin updates
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -103,20 +103,13 @@ class WP_Image_Editor_GD extends WP_Image_Editor {
|
||||
return new WP_Error( 'error_loading_image', __( 'File does not exist?' ), $this->file );
|
||||
}
|
||||
|
||||
// WebP may not work with imagecreatefromstring().
|
||||
// Handle WebP and AVIF mime types explicitly, falling back to imagecreatefromstring.
|
||||
if (
|
||||
function_exists( 'imagecreatefromwebp' ) &&
|
||||
( 'image/webp' === wp_get_image_mime( $this->file ) )
|
||||
function_exists( 'imagecreatefromwebp' ) && ( 'image/webp' === wp_get_image_mime( $this->file ) )
|
||||
) {
|
||||
$this->image = @imagecreatefromwebp( $this->file );
|
||||
} else {
|
||||
$this->image = @imagecreatefromstring( $file_contents );
|
||||
}
|
||||
|
||||
// AVIF may not work with imagecreatefromstring().
|
||||
if (
|
||||
function_exists( 'imagecreatefromavif' ) &&
|
||||
( 'image/avif' === wp_get_image_mime( $this->file ) )
|
||||
} elseif (
|
||||
function_exists( 'imagecreatefromavif' ) && ( 'image/avif' === wp_get_image_mime( $this->file ) )
|
||||
) {
|
||||
$this->image = @imagecreatefromavif( $this->file );
|
||||
} else {
|
||||
|
||||
@@ -153,6 +153,16 @@ class WP_Textdomain_Registry {
|
||||
* @param string $path Language directory path.
|
||||
*/
|
||||
public function set_custom_path( $domain, $path ) {
|
||||
// If just-in-time loading was triggered before, reset the entry so it can be tried again.
|
||||
|
||||
if ( isset( $this->all[ $domain ] ) ) {
|
||||
$this->all[ $domain ] = array_filter( $this->all[ $domain ] );
|
||||
}
|
||||
|
||||
if ( empty( $this->current[ $domain ] ) ) {
|
||||
unset( $this->current[ $domain ] );
|
||||
}
|
||||
|
||||
$this->custom_paths[ $domain ] = rtrim( $path, '/' );
|
||||
}
|
||||
|
||||
@@ -336,7 +346,7 @@ class WP_Textdomain_Registry {
|
||||
* If no path is found for the given locale and a custom path has been set
|
||||
* using load_plugin_textdomain/load_theme_textdomain, use that one.
|
||||
*/
|
||||
if ( 'en_US' !== $locale && isset( $this->custom_paths[ $domain ] ) ) {
|
||||
if ( isset( $this->custom_paths[ $domain ] ) ) {
|
||||
$fallback_location = rtrim( $this->custom_paths[ $domain ], '/' ) . '/';
|
||||
$this->set( $domain, $locale, $fallback_location );
|
||||
return $fallback_location;
|
||||
|
||||
@@ -611,6 +611,7 @@ add_action( 'wp_footer', 'wp_enqueue_stored_styles', 1 );
|
||||
add_action( 'wp_default_styles', 'wp_default_styles' );
|
||||
add_filter( 'style_loader_src', 'wp_style_loader_src', 10, 2 );
|
||||
|
||||
add_action( 'wp_head', 'wp_print_auto_sizes_contain_css_fix', 1 );
|
||||
add_action( 'wp_head', 'wp_maybe_inline_styles', 1 ); // Run for styles enqueued in <head>.
|
||||
add_action( 'wp_footer', 'wp_maybe_inline_styles', 1 ); // Run for late-loaded styles in the footer.
|
||||
|
||||
|
||||
@@ -1157,6 +1157,33 @@ class WP_HTML_Processor extends WP_HTML_Tag_Processor {
|
||||
$token_type = $this->get_token_type();
|
||||
|
||||
switch ( $token_type ) {
|
||||
case '#doctype':
|
||||
$doctype = $this->get_doctype_info();
|
||||
if ( null === $doctype ) {
|
||||
break;
|
||||
}
|
||||
|
||||
$html .= '<!DOCTYPE';
|
||||
|
||||
if ( $doctype->name ) {
|
||||
$html .= " {$doctype->name}";
|
||||
}
|
||||
|
||||
if ( null !== $doctype->public_identifier ) {
|
||||
$quote = str_contains( $doctype->public_identifier, '"' ) ? "'" : '"';
|
||||
$html .= " PUBLIC {$quote}{$doctype->public_identifier}{$quote}";
|
||||
}
|
||||
if ( null !== $doctype->system_identifier ) {
|
||||
if ( null === $doctype->public_identifier ) {
|
||||
$html .= ' SYSTEM';
|
||||
}
|
||||
$quote = str_contains( $doctype->system_identifier, '"' ) ? "'" : '"';
|
||||
$html .= " {$quote}{$doctype->system_identifier}{$quote}";
|
||||
}
|
||||
|
||||
$html .= '>';
|
||||
break;
|
||||
|
||||
case '#text':
|
||||
$html .= htmlspecialchars( $this->get_modifiable_text(), ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML5, 'UTF-8' );
|
||||
break;
|
||||
@@ -1173,10 +1200,6 @@ class WP_HTML_Processor extends WP_HTML_Tag_Processor {
|
||||
case '#cdata-section':
|
||||
$html .= "<![CDATA[{$this->get_modifiable_text()}]]>";
|
||||
break;
|
||||
|
||||
case 'html':
|
||||
$html .= '<!DOCTYPE html>';
|
||||
break;
|
||||
}
|
||||
|
||||
if ( '#tag' !== $token_type ) {
|
||||
|
||||
@@ -584,7 +584,8 @@ final class WP_Interactivity_API {
|
||||
} elseif ( is_object( $current ) && isset( $current->$path_segment ) ) {
|
||||
$current = $current->$path_segment;
|
||||
} else {
|
||||
return null;
|
||||
$current = null;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( $current instanceof Closure ) {
|
||||
@@ -1089,19 +1090,6 @@ HTML;
|
||||
if ( 'enter' === $mode && ! $this->has_processed_router_region ) {
|
||||
$this->has_processed_router_region = true;
|
||||
|
||||
/*
|
||||
* Initialize the `core/router` store.
|
||||
* If the store is not initialized like this with minimal
|
||||
* navigation object, the interactivity-router script module
|
||||
* errors.
|
||||
*/
|
||||
$this->state(
|
||||
'core/router',
|
||||
array(
|
||||
'navigation' => new stdClass(),
|
||||
)
|
||||
);
|
||||
|
||||
// Enqueues as an inline style.
|
||||
wp_register_style( 'wp-interactivity-router-animations', false );
|
||||
wp_add_inline_style( 'wp-interactivity-router-animations', $this->get_router_animation_styles() );
|
||||
|
||||
+2
-1
@@ -47222,7 +47222,8 @@ function PatternList({
|
||||
return true;
|
||||
}
|
||||
if (selectedCategory === 'uncategorized') {
|
||||
const hasKnownCategory = pattern.categories.some(category => registeredPatternCategories.includes(category));
|
||||
var _pattern$categories$s;
|
||||
const hasKnownCategory = (_pattern$categories$s = pattern.categories?.some(category => registeredPatternCategories.includes(category))) !== null && _pattern$categories$s !== void 0 ? _pattern$categories$s : false;
|
||||
return !pattern.categories?.length || !hasKnownCategory;
|
||||
}
|
||||
return pattern.categories?.includes(selectedCategory);
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+3
-1
@@ -57454,7 +57454,9 @@ function FormFileUpload({
|
||||
// @todo: Temporary fix a bug that prevents Chromium browsers from selecting ".heic" files
|
||||
// from the file upload. See https://core.trac.wordpress.org/ticket/62268#comment:4.
|
||||
// This can be removed once the Chromium fix is in the stable channel.
|
||||
const compatAccept = !!accept?.includes('image/*') ? `${accept}, image/heic, image/heif` : accept;
|
||||
// Prevent Safari from adding "image/heic" and "image/heif" to the accept attribute.
|
||||
const isSafari = globalThis.window?.navigator.userAgent.includes('Safari') && !globalThis.window?.navigator.userAgent.includes('Chrome') && !globalThis.window?.navigator.userAgent.includes('Chromium');
|
||||
const compatAccept = !isSafari && !!accept?.includes('image/*') ? `${accept}, image/heic, image/heif` : accept;
|
||||
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
|
||||
className: "components-form-file-upload",
|
||||
children: [ui, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -683,7 +683,7 @@ function CreatePatternModalContents({
|
||||
function getTermLabels(pattern, categories) {
|
||||
// Theme patterns rely on core pattern categories.
|
||||
if (pattern.type !== PATTERN_TYPES.user) {
|
||||
return categories.core?.filter(category => pattern.categories.includes(category.name)).map(category => category.label);
|
||||
return categories.core?.filter(category => pattern.categories?.includes(category.name)).map(category => category.label);
|
||||
}
|
||||
return categories.user?.filter(category => pattern.wp_pattern_category.includes(category.id)).map(category => category.label);
|
||||
}
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+26
-3
@@ -985,6 +985,9 @@ function load_default_textdomain( $locale = null ) {
|
||||
* @since 4.6.0 The function now tries to load the .mo file from the languages directory first.
|
||||
* @since 6.7.0 Translations are no longer immediately loaded, but handed off to the just-in-time loading mechanism.
|
||||
*
|
||||
* @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry.
|
||||
* @global array<string, WP_Translations|NOOP_Translations> $l10n An array of all currently loaded text domains.
|
||||
*
|
||||
* @param string $domain Unique identifier for retrieving translated strings
|
||||
* @param string|false $deprecated Optional. Deprecated. Use the $plugin_rel_path parameter instead.
|
||||
* Default false.
|
||||
@@ -994,7 +997,8 @@ function load_default_textdomain( $locale = null ) {
|
||||
*/
|
||||
function load_plugin_textdomain( $domain, $deprecated = false, $plugin_rel_path = false ) {
|
||||
/** @var WP_Textdomain_Registry $wp_textdomain_registry */
|
||||
global $wp_textdomain_registry;
|
||||
/** @var array<string, WP_Translations|NOOP_Translations> $l10n */
|
||||
global $wp_textdomain_registry, $l10n;
|
||||
|
||||
if ( ! is_string( $domain ) ) {
|
||||
return false;
|
||||
@@ -1011,6 +1015,11 @@ function load_plugin_textdomain( $domain, $deprecated = false, $plugin_rel_path
|
||||
|
||||
$wp_textdomain_registry->set_custom_path( $domain, $path );
|
||||
|
||||
// If just-in-time loading was triggered before, reset the entry so it can be tried again.
|
||||
if ( isset( $l10n[ $domain ] ) && $l10n[ $domain ] instanceof NOOP_Translations ) {
|
||||
unset( $l10n[ $domain ] );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1022,6 +1031,7 @@ function load_plugin_textdomain( $domain, $deprecated = false, $plugin_rel_path
|
||||
* @since 6.7.0 Translations are no longer immediately loaded, but handed off to the just-in-time loading mechanism.
|
||||
*
|
||||
* @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry.
|
||||
* @global array<string, WP_Translations|NOOP_Translations> $l10n An array of all currently loaded text domains.
|
||||
*
|
||||
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
|
||||
* @param string $mu_plugin_rel_path Optional. Relative to `WPMU_PLUGIN_DIR` directory in which the .mo
|
||||
@@ -1030,7 +1040,8 @@ function load_plugin_textdomain( $domain, $deprecated = false, $plugin_rel_path
|
||||
*/
|
||||
function load_muplugin_textdomain( $domain, $mu_plugin_rel_path = '' ) {
|
||||
/** @var WP_Textdomain_Registry $wp_textdomain_registry */
|
||||
global $wp_textdomain_registry;
|
||||
/** @var array<string, WP_Translations|NOOP_Translations> $l10n */
|
||||
global $wp_textdomain_registry, $l10n;
|
||||
|
||||
if ( ! is_string( $domain ) ) {
|
||||
return false;
|
||||
@@ -1040,6 +1051,11 @@ function load_muplugin_textdomain( $domain, $mu_plugin_rel_path = '' ) {
|
||||
|
||||
$wp_textdomain_registry->set_custom_path( $domain, $path );
|
||||
|
||||
// If just-in-time loading was triggered before, reset the entry so it can be tried again.
|
||||
if ( isset( $l10n[ $domain ] ) && $l10n[ $domain ] instanceof NOOP_Translations ) {
|
||||
unset( $l10n[ $domain ] );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1056,6 +1072,7 @@ function load_muplugin_textdomain( $domain, $mu_plugin_rel_path = '' ) {
|
||||
* @since 6.7.0 Translations are no longer immediately loaded, but handed off to the just-in-time loading mechanism.
|
||||
*
|
||||
* @global WP_Textdomain_Registry $wp_textdomain_registry WordPress Textdomain Registry.
|
||||
* @global array<string, WP_Translations|NOOP_Translations> $l10n An array of all currently loaded text domains.
|
||||
*
|
||||
* @param string $domain Text domain. Unique identifier for retrieving translated strings.
|
||||
* @param string|false $path Optional. Path to the directory containing the .mo file.
|
||||
@@ -1064,7 +1081,8 @@ function load_muplugin_textdomain( $domain, $mu_plugin_rel_path = '' ) {
|
||||
*/
|
||||
function load_theme_textdomain( $domain, $path = false ) {
|
||||
/** @var WP_Textdomain_Registry $wp_textdomain_registry */
|
||||
global $wp_textdomain_registry;
|
||||
/** @var array<string, WP_Translations|NOOP_Translations> $l10n */
|
||||
global $wp_textdomain_registry, $l10n;
|
||||
|
||||
if ( ! is_string( $domain ) ) {
|
||||
return false;
|
||||
@@ -1076,6 +1094,11 @@ function load_theme_textdomain( $domain, $path = false ) {
|
||||
|
||||
$wp_textdomain_registry->set_custom_path( $domain, $path );
|
||||
|
||||
// If just-in-time loading was triggered before, reset the entry so it can be tried again.
|
||||
if ( isset( $l10n[ $domain ] ) && $l10n[ $domain ] instanceof NOOP_Translations ) {
|
||||
unset( $l10n[ $domain ] );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1137,8 +1137,12 @@ function wp_get_attachment_image( $attachment_id, $size = 'thumbnail', $icon = f
|
||||
}
|
||||
}
|
||||
|
||||
/** This filter is documented in wp-includes/media.php */
|
||||
$add_auto_sizes = apply_filters( 'wp_img_tag_add_auto_sizes', true );
|
||||
|
||||
// Adds 'auto' to the sizes attribute if applicable.
|
||||
if (
|
||||
$add_auto_sizes &&
|
||||
isset( $attr['loading'] ) &&
|
||||
'lazy' === $attr['loading'] &&
|
||||
isset( $attr['sizes'] ) &&
|
||||
@@ -1985,6 +1989,17 @@ function wp_filter_content_tags( $content, $context = null ) {
|
||||
* @return string The filtered image tag markup.
|
||||
*/
|
||||
function wp_img_tag_add_auto_sizes( string $image ): string {
|
||||
/**
|
||||
* Filters whether auto-sizes for lazy loaded images is enabled.
|
||||
*
|
||||
* @since 6.7.1
|
||||
*
|
||||
* @param boolean $enabled Whether auto-sizes for lazy loaded images is enabled.
|
||||
*/
|
||||
if ( ! apply_filters( 'wp_img_tag_add_auto_sizes', true ) ) {
|
||||
return $image;
|
||||
}
|
||||
|
||||
$processor = new WP_HTML_Tag_Processor( $image );
|
||||
|
||||
// Bail if there is no IMG tag.
|
||||
@@ -1993,8 +2008,19 @@ function wp_img_tag_add_auto_sizes( string $image ): string {
|
||||
}
|
||||
|
||||
// Bail early if the image is not lazy-loaded.
|
||||
$value = $processor->get_attribute( 'loading' );
|
||||
if ( ! is_string( $value ) || 'lazy' !== strtolower( trim( $value, " \t\f\r\n" ) ) ) {
|
||||
$loading = $processor->get_attribute( 'loading' );
|
||||
if ( ! is_string( $loading ) || 'lazy' !== strtolower( trim( $loading, " \t\f\r\n" ) ) ) {
|
||||
return $image;
|
||||
}
|
||||
|
||||
/*
|
||||
* Bail early if the image doesn't have a width attribute.
|
||||
* Per WordPress Core itself, lazy-loaded images should always have a width attribute.
|
||||
* However, it is possible that lazy-loading could be added by a plugin, where we don't have that guarantee.
|
||||
* As such, it still makes sense to ensure presence of a width attribute here in order to use `sizes=auto`.
|
||||
*/
|
||||
$width = $processor->get_attribute( 'width' );
|
||||
if ( ! is_string( $width ) || '' === $width ) {
|
||||
return $image;
|
||||
}
|
||||
|
||||
@@ -2029,6 +2055,28 @@ function wp_sizes_attribute_includes_valid_auto( string $sizes_attr ): bool {
|
||||
return 'auto' === strtolower( trim( $first_size, " \t\f\r\n" ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints a CSS rule to fix potential visual issues with images using `sizes=auto`.
|
||||
*
|
||||
* This rule overrides the similar rule in the default user agent stylesheet, to avoid images that use e.g.
|
||||
* `width: auto` or `width: fit-content` to appear smaller.
|
||||
*
|
||||
* @since 6.7.1
|
||||
* @see https://html.spec.whatwg.org/multipage/rendering.html#img-contain-size
|
||||
* @see https://core.trac.wordpress.org/ticket/62413
|
||||
*/
|
||||
function wp_print_auto_sizes_contain_css_fix() {
|
||||
/** This filter is documented in wp-includes/media.php */
|
||||
$add_auto_sizes = apply_filters( 'wp_img_tag_add_auto_sizes', true );
|
||||
if ( ! $add_auto_sizes ) {
|
||||
return;
|
||||
}
|
||||
|
||||
?>
|
||||
<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
|
||||
<?php
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds optimization attributes to an `img` HTML tag.
|
||||
*
|
||||
|
||||
@@ -2479,16 +2479,7 @@ if ( ! function_exists( 'wp_salt' ) ) :
|
||||
|
||||
static $duplicated_keys;
|
||||
if ( null === $duplicated_keys ) {
|
||||
$duplicated_keys = array(
|
||||
'put your unique phrase here' => true,
|
||||
);
|
||||
|
||||
/*
|
||||
* translators: This string should only be translated if wp-config-sample.php is localized.
|
||||
* You can check the localized release package or
|
||||
* https://i18n.svn.wordpress.org/<locale code>/branches/<wp version>/dist/wp-config-sample.php
|
||||
*/
|
||||
$duplicated_keys[ __( 'put your unique phrase here' ) ] = true;
|
||||
$duplicated_keys = array();
|
||||
|
||||
foreach ( array( 'AUTH', 'SECURE_AUTH', 'LOGGED_IN', 'NONCE', 'SECRET' ) as $first ) {
|
||||
foreach ( array( 'KEY', 'SALT' ) as $second ) {
|
||||
@@ -2499,6 +2490,15 @@ if ( ! function_exists( 'wp_salt' ) ) :
|
||||
$duplicated_keys[ $value ] = isset( $duplicated_keys[ $value ] );
|
||||
}
|
||||
}
|
||||
|
||||
$duplicated_keys['put your unique phrase here'] = true;
|
||||
|
||||
/*
|
||||
* translators: This string should only be translated if wp-config-sample.php is localized.
|
||||
* You can check the localized release package or
|
||||
* https://i18n.svn.wordpress.org/<locale code>/branches/<wp version>/dist/wp-config-sample.php
|
||||
*/
|
||||
$duplicated_keys[ __( 'put your unique phrase here' ) ] = true;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '6.7';
|
||||
$wp_version = '6.7.1';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
||||
Reference in New Issue
Block a user