diff --git a/wp-includes/class-wp-textdomain-registry.php b/wp-includes/class-wp-textdomain-registry.php index 4564a6c0bf..fc3994ad15 100644 --- a/wp-includes/class-wp-textdomain-registry.php +++ b/wp-includes/class-wp-textdomain-registry.php @@ -97,7 +97,7 @@ class WP_Textdomain_Registry { */ public function has( $domain ) { return ( - ! empty( $this->current[ $domain ] ) || + isset( $this->current[ $domain ] ) || empty( $this->all[ $domain ] ) || in_array( $domain, $this->domains_with_translations, true ) ); diff --git a/wp-includes/l10n.php b/wp-includes/l10n.php index 080007b869..a0c7bba903 100644 --- a/wp-includes/l10n.php +++ b/wp-includes/l10n.php @@ -834,6 +834,12 @@ function unload_textdomain( $domain, $reloadable = false ) { do_action( 'unload_textdomain', $domain, $reloadable ); if ( isset( $l10n[ $domain ] ) ) { + if ( $l10n[ $domain ] instanceof NOOP_Translations ) { + unset( $l10n[ $domain ] ); + + return false; + } + unset( $l10n[ $domain ] ); if ( ! $reloadable ) { @@ -1307,6 +1313,8 @@ function get_translations_for_domain( $domain ) { $noop_translations = new NOOP_Translations(); } + $l10n[ $domain ] = &$noop_translations; + return $noop_translations; } @@ -1322,7 +1330,7 @@ function get_translations_for_domain( $domain ) { */ function is_textdomain_loaded( $domain ) { global $l10n; - return isset( $l10n[ $domain ] ); + return isset( $l10n[ $domain ] ) && ! $l10n[ $domain ] instanceof NOOP_Translations; } /** diff --git a/wp-includes/version.php b/wp-includes/version.php index 50dc350fb9..9f1b619e6b 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.3-alpha-55864'; +$wp_version = '6.3-alpha-55865'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.