【发布时间】:2020-03-30 20:16:39
【问题描述】:
我一直在尝试设置一个 cookie,它会根据单击按钮更改主题的样式表。我不知道为什么它不起作用,请有人解释我哪里出错了?
这些是我的按钮(header.php):
<a href="?style=as1" >AS1</a>
<a href="?style=as2" >AS2</a>
<a href="?style=as3" >AS3</a>
这是我的样式表(header.php):
<link rel="stylesheet" type="text/css" media="all" id="accessible-stylesheet" href="<?php echo get_template_directory_uri(); ?>/<?php echo $stylesheet; ?>" />
这是我的函数(functions.php):
// Accessible Stylesheet Cookie
$stylesheet = "as1";
if ( isset($_GET['style']) ) {
if ($_GET['style'] == "as2") {
$stylesheet = "as2";
} else if ($_GET['style'] == "as3") {
$stylesheet = "as3";
}
setcookie("style","$stylesheet","3600*7");
}
$as1stylesheet = 'css/colors-as1.css';
$as2stylesheet = 'css/colors-as2.css';
$as3stylesheet = 'css/colors-as3.css';
$stylesheet = $as1stylesheet;
if ( isset($_COOKIE['stylesheet'] ) ) {
if ( $_COOKIE['stylesheet'] == "as2" ) {
$stylesheet = $as2stylesheet;
} else if ( $_COOKIE['stylesheet'] == "as3" ) {
$stylesheet = $as3stylesheet;
}
}
我没有收到任何错误,我无法弄清楚我哪里出错了。根本没有设置样式表。
【问题讨论】:
-
您在操作顺序中的哪个位置设置 cookie?
-
@HowardE 你是什么意思?我错过了重要的一点吗?这是我第一次使用 cookie,如果有,请见谅。
-
您必须在发送标头之前设置 cookie。 (如果你使用 PHP setcookie)
-
如果我目前在 wp_head() 上方的 header.php 中拥有所有内容;对吗?
-
是的。只是检查。