我创建了一个双语言网站,其表单在提交时会保存一个 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 } ?>
语言正确切换,但仅当您单击提交按钮两次时。