更新一天后:现在正在设置Cookie。我试图通过下面引用的代码中的编辑来显示我需要做的更改。还有一个问题。现在它不应用非默认样式表!该浏览器可以找到他们,而不是切换....php styleswitcher饼干没有在wordpress中设置。为什么?
(原题:) 我使用罗布·巴卢的第2节Styleswitcher(robballou.com/switcher/v2/tutorial.php),在一个WP3博客(网站是here)。我已经改变了样式表的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 = new Styleswitcher('/ 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";
$ SS->开始();
$ss->printStyles();
?>
实际switcher.php然后只是:?如在WordPress的的header.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();
?>
形式具有“< _ PHP代码bloginfo( 'template_url');>/switcher.php”,而不是仅仅 “switcher.php”
<form action="<?php bloginfo('template_url'); ?>/switcher.php" method="post">
< _Input类型= “隐藏” 名称= “引荐” ID = “引荐” 值= “”/>
<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。现在来弄清楚为什么它不会去除默认样式。
你在哪里运行代码的主要块?在模板文件里面?如果是这样的文件?在插件里面? – TheDeadMedic 2010-12-08 11:05:42
主要代码在Styleswitcher.php中,与下载相同。 switcher.php调用它,并包含您可能需要更改的设置。两者都在模板文件的博客目录中。我在switcher.php中更改的是“myurl”行和样式文件的路径。 – quixote 2010-12-08 16:47:47