2014-12-19 26 views
0

我在WP站點有多個語言,如(English,German and French)。還有URL看起來像這樣:http://example.com(english). http://example.com/?lang=fr(french) and http://example.com/?lang=de(german) 我想頁面之前改變語言loads.so我嘗試index.php一些代碼,但它造成的問題。 我的代碼是:更改語言使用自定義代碼

$currentUrl = 'this is current page url'; 
$store_code = "french"; 
switch ($store_code) { 
    case 'french': 
     $_baseurl = $currentUrl."?lang=fr"; 

     echo "<script type='text/javascript'>window.location='{$_baseurl}'</script>"; 
     break; 
case 'german': 
     $_baseurl = $currentUrl."?lang=de"; 
     echo "<script type='text/javascript'>window.location='{$_baseurl}'</script>"; 
     break; 
case 'mandarin': 
     $_baseurl = $currentUrl."?lang=zh"; 
     echo "<script type='text/javascript'>window.location='{$_baseurl}'</script>"; 
     break; 
    default: 
     $_baseurl = $currentUrl; 
     echo "<script type='text/javascript'>window.location='{$_baseurl}'</script>"; 
     break; 
} 
Output. 

它生成像這樣的空網頁的網址。

http://example.com/?lang=fr?lang=fr?lang=fr?lang=fr?lang=fr?lang=fr?lang=fr?lang=fr?lang=fr?lang=fr?lang=fr?lang=fr?lang=fr?lang=fr?lang=fr 
+0

'但它造成了問題'它創建了什麼問題? – 2014-12-19 06:21:42

+0

@Rohil_PHPBeginner我有添加錯誤問題 – 2014-12-19 06:23:59

回答

0

我使用情況是開關statment.It工作

define('WP_USE_THEMES', true); 
require("../app/Mage.php"); 
umask(0); 
Mage::app('default'); 
$currentUrl = Mage::helper('core/url')->getCurrentUrl(); 
$store_code = Mage::app()->getStore()->getCode(); 
if(Mage::getSingleton('core/session', array('name' => 'frontend'))->getData("foo") !='bar') 
{ 

Mage::getSingleton('core/session')->setData("foo","bar"); 
switch ($store_code) { 
    case 'french': 
     $_baseurl = $currentUrl."?lang=fr"; 
     echo "<script type='text/javascript'>window.location='{$_baseurl}'</script>"; 
     break; 
case 'german': 
     $_baseurl = $currentUrl."?lang=de"; 
     echo "<script type='text/javascript'>window.location='{$_baseurl}'</script>"; 
     break; 
case 'mandarin': 
     $_baseurl = $currentUrl."?lang=zh"; 
     echo "<script type='text/javascript'>window.location='{$_baseurl}'</script>"; 
     break; 
    default: 
     $_baseurl = $currentUrl; 
     echo "<script type='text/javascript'>window.location='{$_baseurl}'</script>"; 
     break; 
} 
} 

之前雖然在Magento的身邊,我喜歡這個佈局負載事件之前設置會話解決。

Mage::getSingleton('core/session')->setData("foo","magento"); 
+0

該解決方案是不可取的,這將導致無效的URL時$ CURRENTURL已經包含了'?'。您更好地使用'http_build_query'保持可能的其他GET-PARAMS完好,並創建一個有效的URL – 2014-12-19 19:27:10

+0

@ Dr.Molle現在檢查。我認爲它現在完美適用於會話基礎上的語言切換器。我正在使用帶有WP的Magento。 – 2014-12-22 06:43:54

-1

它產生output喜歡這樣,因爲你已經在switch.So每次只取法國越來越case只。你可以做的是製造陣列,語言的,之後用它switch這樣的:

$currentUrl = 'this is current page url'; 
    $store_code = array('french', 'german', 'mandarin'); 
    foreach($store_code as $mylang){ 
     switch ($mylang) { 
      case 'french': 
       $_baseurl = $currentUrl."?lang=fr"; 

       echo "<script type='text/javascript'>window.location='{$_baseurl}'</script>"; 
       break; 
     case 'german': 
       $_baseurl = $currentUrl."?lang=de"; 
       echo "<script type='text/javascript'>window.location='{$_baseurl}'</script>"; 
       break; 
     case 'mandarin': 
       $_baseurl = $currentUrl."?lang=zh"; 
       echo "<script type='text/javascript'>window.location='{$_baseurl}'</script>"; 
       break; 
      default: 
       $_baseurl = $currentUrl; 
       echo "<script type='text/javascript'>window.location='{$_baseurl}'</script>"; 
       break; 
     } 
    } 

請讓我知道這裏的輸出。

+0

謝謝,但法國人僅僅是一個example.Like當頁面加載我有一個代碼,現在我必須設置該代碼basis.Hope你明白我想說 – 2014-12-19 06:38:03

+0

條件問題在於它打電話給法國人安吉安和阿吉安。我想在第一次嘗試之後不應該這樣做。 – 2014-12-19 06:38:57

+0

對不起,但我還沒有得到你..哪些代碼你在說什麼?你有沒有試過上面的代碼?它給了什麼? – 2014-12-19 06:40:01

相關問題