2010-12-07 41 views
0

更新一天後:現在正在設置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&nbsp;Contrast" <?php $ss->printSetInputChecked("style", "highcontrast"); ?>/> </li> 
    </form> 

我認爲,至關重要的一點是在表單元素中添加了php bloginfo('template_url')路徑到switcher.php。現在來弄清楚爲什麼它不會去除默認樣式。

+0

你在哪裏運行代碼的主要塊?在模板文件裏面?如果是這樣的文件?在插件裏面? – TheDeadMedic 2010-12-08 11:05:42

+0

主要代碼在Styleswitcher.php中,與下載相同。 switcher.php調用它,幷包含您可能需要更改的設置。兩者都在模板文件的博客目錄中。我在switcher.php中更改的是「myurl」行和樣式文件的路徑。 – quixote 2010-12-08 16:47:47

回答

0

(繼續響應死者軍醫。我沒有系統的竅門在這裏呢。)

我也一直在四處尋找多一些,並且發現了一些有關與WP註冊全球問題變量。 http://wordpress.org/support/topic/wp-blog-headerphp-killing-sessions

我試着在博客根目錄下創建一個php.ini文件,並在該線程末尾建議使用「register_globals Off」,但似乎沒有任何操作。

還有這個鏈接,hp://www.scratch99.com/2008/09/setting-cookies-in-wordpress-trap-for-beginners/它談論給setcookie一個明確的路徑,但我不清楚如何以及在哪裏適合上面我的switcher.php。

(要回答你的最後一個問題:不,這不是一個插件,WP是styleswitchers可憐,因此這奧德賽:S)