Configurando WPLANG a partir de um Plug-in


11

Para um único site wordpress, o idioma deve ser definido a partir wp-config.phpde WPLANG, mas é possível definir no meu plug-in que substitui o valor padrão?


11
O link também aparece na coluna direita desta página, mas acho que vale a pena notar nos comentários outra abordagem para uma situação semelhante: wordpress.stackexchange.com/a/53678/12615
brasofilo

Respostas:


16

Em wp-includes/l10n.phpvocê encontrará a função get_locale(). Oferece um filtro; você pode definir o idioma e ignorar a constante:

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 );
}

Para alterá-lo por uso plug-in do filtro 'locale'. Exemplo:

add_filter( 'locale', 'wpse_52419_change_language' );
function wpse_52419_change_language( $locale )
{
    return 'de_DE';
}

Funciona como uma mágica. Mas no meu caso, ele está retornando um erro: Fatal error: Cannot redeclare get_locale(). Simplesmente mudei o nome da função de get_locale()para nano_get_locale()e está funcionando maravilhosamente.
Mayeenul Islam #

3
@ MayeenulIslam Você não deve copiar a get_locale()função, é uma citação do núcleo. Tudo o que você precisa é do último bloco de código.
fuxia

ótimo @toscho, muito obrigado. No entanto, isso não funciona se eu ativar o OPCache no meu MAMPpro local ... é assim ou existe uma solução?
precisa saber é o seguinte

@RaphaelJeger Isso não pode ser afetado pelo OPCache, apenas uma chache de saída pode fazer isso. Se você ainda tiver esse problema, faça uma nova pergunta.
fuxia
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.