レスポンシブな Wordpress サイトを持っています: www.2eenheid.de。私のクライアントは、モバイルでサイトをフルサイズで表示するオプション、オプトアウト応答オプションを望んでいます。今、私はこの解決策を見つけました:
http://css-tricks.com/user-opt-out-responsive-design/
URL パラメーター(URL は次のようになります: www.2eenheid.de/?resp=no) が呼び出されたときにPHP を使用してmeta name="viewport"
タグを削除します。?resp=no
タグを削除する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
。
現在、私のクライアントには、ユーザーがフルサイズの Web サイトを必要とする場合、別の 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"; } ?>">
誰でもこれを手伝ってもらえますか?