更新一天後:現在正在設置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