Wordpress Настройка Cook ie для изменения таблицы стилей - PullRequest
1 голос
/ 30 марта 2020

Я пытался установить повара ie, который будет изменять таблицу стилей темы в зависимости от нажатия кнопки. Я не могу понять, почему это не работает, пожалуйста, кто-нибудь может объяснить, где я иду не так?

Это мои кнопки (заголовок. php):

<a href="?style=as1" >AS1</a>
<a href="?style=as2" >AS2</a> 
<a href="?style=as3" >AS3</a>

Это моя таблица стилей (заголовок. php):

<link rel="stylesheet" type="text/css" media="all" id="accessible-stylesheet" href="<?php echo get_template_directory_uri(); ?>/<?php echo $stylesheet; ?>" />

Это моя функция (функции. 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;

    }
}

Я не получаю ошибок, могу не понимаю, где я иду не так. Таблица стилей вообще не устанавливается.

Ответы [ 2 ]

1 голос
/ 30 марта 2020

В вашем коде PHP есть несколько ошибок, и вы неправильно используете переменные. Это кажется более кратким.

Вы не можете установить и вызвать суперглобальный $ _COOK IE на той же странице. Вот выдержка из руководства ... https://www.php.net/manual/en/function.setcookie.php

После того, как файлы cookie установлены, к ним можно получить доступ при загрузке следующей страницы с помощью $ _COOK IE массив.

$stylesheet = "as1";
// Check for cookie and set one if it's not set
if (!isset($_COOKIE['style'])) setcookie('style', $stylesheet, time() + (3600*7));

// If there is a cookie, the stylesheet is from the cookie
if ( isset($_COOKIE['style'] ) ) {
    $stylesheet = $_COOKIE['style'];
}

// If there's a get parameter set the cookie to it (for next page load), and set the stylesheet for this page load
if ( isset($_GET['style']) ) {
  $stylesheet = $_GET['style'];
  setcookie('style', $stylesheet, time() + (3600*7));
}
<link rel="stylesheet" type="text/css" media="all" id="accessible-stylesheet" href="<?php echo get_template_directory_uri(); ?>/css/colors-<?php echo $stylesheet; ?>.css" />
0 голосов
/ 30 марта 2020

Ваш повар ie имя стиля, и вы пытаетесь получить повар ie таблица стилей

setcookie("style","$stylesheet","3600*7");, и вам не нужно указывать значение в кавычках, если вы только собираетесь поместите в него переменную: setcookie("stylesheet",$stylesheet,"3600*7");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...