我有一个响应式 Wordpress 网站:www.2eenheid.de。我的客户想要在移动设备上查看全尺寸网站的选项,这是一个选择退出响应选项。现在,我找到了这个解决方案:
http://css-tricks.com/user-opt-out-responsive-design/
meta name="viewport"
当调用 URL 参数?resp=no
(URL 变为:www.2eenheid.de/?resp=no)时,它使用 PHP 删除标记。通过删除meta name="viewport"
标签,网站在移动设备上变为全尺寸。请参见下面的代码:
<head>
<title>My cool site huzzah</title>
<?php
if (!$_GET['resp'] == 'no') { ?>
<meta name="viewport" content="width=device-width">
<?php } ?>
</head>
<body class="<?php if (!$_GET['resp'] == 'no') { echo "resp"; } ?>">
这会将当前页面更改为全尺寸,但如果我单击不同的链接,它会变回响应式,这是合乎逻辑的,因为该链接不再包含参数?resp=no
。
现在我的客户要求如果用户想要完整大小的网站,即使在单击不同的 URL 后,它也需要保持完整大小,直到用户将其更改回响应式。
所以我的问题是,如何在?resp=no
为每个 URL 请求单击后保存参数,直到用户通过单击不同的链接(可能使用不同的参数)将其更改回响应式?
我试过谷歌搜索,但找不到任何好的解决方案。我见过有人建议会话值,但我发现这很难理解,有些人说这不是好的做法,因为会话值用于登录。
任何帮助将不胜感激。
编辑 3: 下面的建议似乎不错,但我对 PHP 会话很陌生。我将代码更改为以下建议:
<?php ini_set('display_errors', true);
session_start();
if(isset($_REQUEST['resp'])) {
$_SESSION['resp'] = boolval($_REQUEST['resp']);
}
// Check if enabled
$enabled = isset($_SESSION['resp']) && $_SESSION['resp'];
?><!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>" />
<?php if($enabled): ?>
<meta name="viewport" content="width=device-width">
<?php endif; ?>
<title>LALALA</title>
</head>
<body <?php body_class(); ?> id="<?php if(isset($_SESSION['resp']) && $_SESSION['resp']) { echo "resp"; } ?>">
有人能帮忙吗?