Обновление через день: сейчас устанавливаются файлы cookie. Я пытаюсь показать изменения, которые мне нужно было сделать, с правками в приведенном ниже коде. Там все еще проблема. Теперь он не применяет таблицы стилей не по умолчанию! Браузер может их найти, но не переключатель ....
(оригинальный вопрос :)
Я использую Styleswitcher Роба Баллу v.2 (robballou.com/switcher/v2/tutorial.php) в блоге WP3 (сайт здесь ). Я изменил URL таблиц стилей, чтобы WP знал, где их найти:
от
$ss->addStyle("default", "style.css", "", "", true);
до
$my_url = get_bloginfo('template_url');
$ss->addStyle("default", $my_url . '/style.css', "", "", true);
Судя по источнику документа, таблицы стилей находятся. Так что это не проблема. Тем не менее, cookie просто не устанавливается. Если я запускаю точно такие же сценарии на веб-странице (например, molvray.com/testing/ss-example.php), это работает, и когда я проверяю файлы cookie, устанавливается cwStyle. Но как только он в WP, не повезло.
Полагаю, проблема в следующей строке: $ss->cookieDomain = ".". $_SERVER['HTTP_HOST'];
в switcher.php. Я видел пост, в котором предлагалось использовать HTTP_REFERRER, но это не помогло. Я включил switcher.php ниже. Я не касался самого Styleswitcher.php.
Может кто-нибудь сказать мне, что я делаю не так? Я схожу с ума здесь!
Пожалуйста, будьте настолько ошарашены, насколько можете, чтобы у меня был шанс следовать за снежным комом. Я довольно бесполезен в программировании.
Новое: большая часть switcher.php включена в header.php, а не в отдельный файл.
в header.php:
<?php
require_once ( "Styleswitcher.php");
$ ss = новый переключатель стилей ('/ switcher / v2 /');
if(!isset($reqPath)){ $reqPath = ""; }
require_once($reqPath ."Styleswitcher.php");
$my_url = get_bloginfo('template_url');
$ss = new Styleswitcher();
$ss->addStyle("default", $my_url . '/style.css', "", "", true);
$ss->addStyle("lowgraphics", $my_url . '/handheld.css');
$ss->addStyle("highcontrast", $my_url . '/highcontrast.css');
$ss->createSet("style");
$ss->addStyleToSet("style", "default", true);
$ss->addStyleToSet("style", "lowgraphics");
$ss->addStyleToSet("style", "highcontrast");
$ss->cookieDomain = ".". $_SERVER['HTTP_HOST'];
$ss->cookieName = "cwStyle";
$ & beta;> начать ();
$ss->printStyles();
?>
тогда фактический switcher.php просто:
<?php
if(!isset($reqPath)){ $reqPath = $my_url; }
require_once("Styleswitcher.php");
$ss = new Styleswitcher('/switcher/v2/');
$ss->cookieDomain = ".". $_SERVER['HTTP_HOST'];
$ss->cookieName = "cwStyle";
$ss->start();
?>
форма, используемая в header.php для wordpress, имеет «<_? Php bloginfo ('template_url');?> / Switcher.php» вместо просто «switcher.php»
<form action="<?php bloginfo('template_url'); ?>/switcher.php" method="post">
<_ input type = "hidden" name = "referer" id = "referer" value = "" />
<input type="hidden" name="inputStyle2" id="inputStyle2" value="style" />
<li><input type="submit" name="style" id="default" value="Default" <?php $ss->printSetInputChecked("style", "default"); ?>/></li>
<li><input type="submit" name="style" id="lowgraphics" value="Mobile" <?php $ss->printSetInputChecked("style", "lowgraphics"); ?>/></li>
<li><input type="submit" name="style" id="highcontrast" value="High Contrast" <?php $ss->printSetInputChecked("style", "highcontrast"); ?>/> </li>
</form>
Решающим моментом, я думаю, было добавление пути php bloginfo ('template_url') к switcher.php в элементе формы. Теперь давайте разберемся, почему он не идет ни к чему, кроме стиля по умолчанию.