I18N: Don't initialize `WP_Locale_Switcher` in `wp_load_translations_early()`.

`wp_load_translations_early()` is used when WordPress isn't fully initialized. Therefore using the `WP_Locale_Switcher` with `get_locale()`/`get_user_locale()` can cause PHP fatal errors.
This reverts [38976] and [38977], and instead removes `WP_Locale_Switcher` from `wp_load_translations_early()`.

See #29783.
Fixes #38535.

git-svn-id: https://develop.svn.wordpress.org/trunk@39005 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Dominik Schilling (ocean90) 2016-10-29 11:22:50 +00:00
parent eb68984b1b
commit 404c584956
3 changed files with 0 additions and 46 deletions

View File

@ -50,16 +50,6 @@ function get_locale() {
$locale = WPLANG;
}
// If $wpdb hasn't been initialised yet, we can only return what we have.
if ( ! $wpdb ) {
if ( ! $locale ) {
$locale = 'en_US';
}
/** This filter is documented in wp-includes/l10n.php */
return apply_filters( 'locale', $locale );
}
// If multisite, check options.
if ( is_multisite() ) {
// Don't check blog option when installing.

View File

@ -917,8 +917,6 @@ function wp_load_translations_early() {
}
$wp_locale = new WP_Locale();
$wp_locale_switcher = new WP_Locale_Switcher();
$wp_locale_switcher->init();
}
/**

View File

@ -81,40 +81,6 @@ class Tests_L10n_GetLocale extends WP_UnitTestCase {
$this->assertSame( 'en_US', $found );
}
public function test_should_fall_back_on_locale_when_wpdb_is_unavailable() {
global $locale, $wpdb;
$old_locale = $locale;
$old_wpdb = $wpdb;
$locale = $expected = "Is this a locale? No. No it isn't.";
$wpdb = null;
$found = get_locale();
$locale = $old_locale;
$wpdb = $old_wpdb;
$this->assertSame( $expected, $found );
}
public function test_should_fall_back_on_es_US_when_locale_and_wpdb_are_unavailable() {
global $locale, $wpdb;
$old_locale = $locale;
$old_wpdb = $wpdb;
$locale = null;
$wpdb = null;
$found = get_locale();
$locale = $old_locale;
$wpdb = $old_wpdb;
$this->assertSame( 'en_US', $found );
}
public function test_should_respect_get_locale_filter() {
add_filter( 'locale', array( $this, 'filter_get_locale' ) );
$found = get_locale();