我创建了一个双语言网站,其表单在提交时保存了一个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