开发者

Including a wp-lang file to define WPLANG according to user's choice (Wordpress)?

In this previous questions, someone told me how to make WPLANG clickleable, so tha开发者_如何学JAVAt the user can choose his preferred language (usually you can only define WPLANG by modifying the wp-config). But I'm sure how to make the link. Are the following functions giving me the possibility of using example/?lang= Or example/en?

*wp-lang.php

 session_start();
 if ( isset( $_GET['lang'] ) ) {
    $_SESSION['WPLANG'] = $_GET['lang'];
    define ('WPLANG', $_SESSION[WPLANG]);
 } else {
    if(isset($_SESSION['WPLANG'])) {
        define ('WPLANG', $_SESSION['WPLANG']);
        $_GET['lang'] = $_SESSION['WPLANG'];
    } else {
        if ( isset( $_SERVER["HTTP_ACCEPT_LANGUAGE"] ) ) {
            $languages = strtolower( $_SERVER["HTTP_ACCEPT_LANGUAGE"] );
             $languages = explode( ",", $languages );
            $_SESSION['WPLANG'] = $languages[0];
            $_SESSION['WPLANG'] = str_replace("-", "_", $_SESSION['WPLANG']);
            $_GET['lang'] = substr($_SESSION['WPLANG'],0,2);
            define ('WPLANG', $_SESSION[WPLANG]);
        } else {
            define ('WPLANG', '');
        }
    }
 }

*wp-config.php - Find the section where the constant WPLANG is defined. Add in the following line just before the WPLANG declaration.

 require_once(dirname(__FILE__).'/wp-lang.php');
 define ('WPLANG', ''); 


I was modifying WP_LANG conditionally directly in wp-config.php using $_GET['lang'] and http://example.com/wp-admin/lang=es_ES.

In this example (used in wp-config.php), I've added a cookie, so once you go to any admin link ?lang=lang_COUNTRY, the subsequent loads will be on the new language.

$lang = '';
if( isset( $_GET['lang'] ) )
{
    $lang = $_GET['lang'];
    setcookie( 'my_lang', $lang, time() + 3600 * 24 * 365, '/', '.example.com' );
} 
elseif ( isset( $_COOKIE['my_lang'] ) )
{
    $lang = $_COOKIE['my_lang'];
}   
define( 'WPLANG', $lang );
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜