我創建了一個雙語言網站,其表單在提交時保存了一個cookie,然後每個頁面都會檢查cookie以查看要加載的語言。提交按鈕需要按兩次才能加載頁面
我遇到的問題是需要按兩次提交按鈕才能加載頁面並切換語言。
這是我有以下形式:
<form action="<?php the_permalink(); ?>" name="region" method="post">
<input type="submit" name="region" value="English" id="en-button" />
<input type="submit" name="region" value="Cymraeg" id="cy-button" />
</form>
這是我functions.php文件保存的Cookie:
function set_region_cookie()
{
if(isset($_POST['region']))
{
// Set Cookie
setcookie('region', $_POST['region'], time()+1209600);
// Reload the current page so that the cookie is sent with the request
header('Region: '.$_SERVER['REQUEST_URI']);
}
}
add_action('init', 'set_region_cookie');
這是我身邊每一個內容區域加載不同的內容:
<?php $language = $_COOKIE["region"];
if ($language == "English") { ?>
<?php echo the_field('english_content'); ?>
<?php } else { ?>
<?php echo the_field('welsh_content'); ?>
<?php } ?>
語言切換正確,但只有當您點擊提交按鈕twi CE。
所以你說,第一次點擊'submit'按鈕之一,表單是**沒有**提交?如果是這樣,您使用的是哪種瀏覽器,是否會在所有瀏覽器中發生? – billyonecan
@deifwud當我點擊提交按鈕頁面重新加載,然後當我再次點擊頁面重新加載,但這次語言實際上改變。所以要改變語言,我需要點擊兩次。我使用的是Chrome,但它發生在Safari和Firefox中。 – Rob
好的 - 所以表單實際上是提交 - 你是否在**分配'$ language = $ _COOKIE ['region']'之前調用'set_region_cookie' **? – billyonecan