W przypadku Wordpress dla pojedynczej witryny, język musi być ustawiony na wp-config.php
's' WPLANG
, ale czy można ustawić z mojej wtyczki, która zastępuje wartość domyślną?
W przypadku Wordpress dla pojedynczej witryny, język musi być ustawiony na wp-config.php
's' WPLANG
, ale czy można ustawić z mojej wtyczki, która zastępuje wartość domyślną?
Odpowiedzi:
W wp-includes/l10n.php
znajdziecie funkcję get_locale()
. Oferuje filtr; możesz ustawić język i zignorować stałą:
function get_locale() {
global $locale;
if ( isset( $locale ) )
return apply_filters( 'locale', $locale );
// WPLANG is defined in wp-config.
if ( defined( 'WPLANG' ) )
$locale = WPLANG;
// If multisite, check options.
if ( is_multisite() ) {
// Don't check blog option when installing.
if ( defined( 'WP_INSTALLING' ) || ( false === $ms_locale = get_option( 'WPLANG' ) ) )
$ms_locale = get_site_option('WPLANG');
if ( $ms_locale !== false )
$locale = $ms_locale;
}
if ( empty( $locale ) )
$locale = 'en_US';
return apply_filters( 'locale', $locale );
}
Aby zmienić go według wtyczki, użyj filtra 'locale'
. Przykład:
add_filter( 'locale', 'wpse_52419_change_language' );
function wpse_52419_change_language( $locale )
{
return 'de_DE';
}
Fatal error: Cannot redeclare get_locale()
. Więc po prostu zmieniłem nazwę funkcji z get_locale()
na nano_get_locale()
i działa ona cudownie.
get_locale()
funkcję, to cytat z rdzenia. Wszystko czego potrzebujesz to ostatni blok kodu.