Mise à jour un jour plus tard: les cookies sont en cours de définition. J'essaie de montrer les changements que j'ai dû faire avec les modifications dans le code cité ci-dessous. Il y a toujours un problème. Maintenant, il n'applique pas les feuilles de style non-par défaut! Le navigateur peut les trouver, mais pas le commutateur ....Les cookies php styleswitcher ne sont pas mis en wordpress. Pourquoi?
(question initiale :) J'utilise v.2 Rob Ballou styleswitcher (le robballou.com/switcher/v2/tutorial.php), en un blog WP3 (site here). Je l'ai modifié les urls stylesheet, de sorte que WP sait où les trouver:
de:
$ss->addStyle("default", "style.css", "", "", true);
à
$my_url = get_bloginfo('template_url');
$ss->addStyle("default", $my_url . '/style.css', "", "", true);
A en juger par la source de documents, les feuilles de style sont trouvés . Donc ce n'est pas le problème. Cependant, le cookie n'est tout simplement pas réglé. Si je cours exactement les mêmes scripts sur une page web (par exemple, molvray.com/testing/ss-example.php), cela fonctionne, et quand je vérifie les cookies, cwStyle a été défini. Mais dès que c'est en WP, pas de chance.
Je suppose que le problème est cette ligne: $ss->cookieDomain = ".". $_SERVER['HTTP_HOST'];
dans switcher.php. J'ai vu un post qui suggérait d'utiliser HTTP_REFERRER à la place, mais cela n'aide pas. J'ai inclus switcher.php ci-dessous. Je n'ai pas touché à Styleswitcher.php lui-même.
Quelqu'un peut-il me dire ce que je fais mal? Je vais devenir fou ici!
S'il vous plaît, soyez le moins du monde possible, pour avoir une chance de suivre. Je suis assez inutile à la programmation.
Nouveauté: la plus grande partie de switcher.php est incluse dans header.php et non dans un fichier séparé.
dans header.php:
<?php
require_once ("Styleswitcher.php");
$ ss = nouveau 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";
-ß $> start();
$ss->printStyles();
?>
la switcher.php réelle est alors simplement:?
<?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();
?>
forme
utilisé dans le header.php de wordpress a "< _ php bloginfo ('de template_url');>/switcher.php » au lieu de "switcher.php"
<form action="<?php bloginfo('template_url'); ?>/switcher.php" method="post">
< type _INPUT = "" name = "caché" id = "referer 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>
Le bit essentiel, je pense, a ajouter le chemin bloginfo php ('de template_url') à switcher.php dans l'élément de forme. Maintenant, pour comprendre pourquoi il ne va pas à autre chose que le style par défaut.
Où Courez-vous le morceau principal du code? Dans un fichier modèle? Si oui, quel fichier? Dans un plugin? – TheDeadMedic
Le code principal est dans Styleswitcher.php, qui est inchangé à partir du téléchargement. switcher.php l'appelle et contient les paramètres que vous devrez peut-être modifier. Les deux sont dans le répertoire du blog pour les fichiers modèles. Ce que j'ai changé dans switcher.php est la ligne "myurl" et le chemin vers les fichiers de style. – quixote
Switcher.php est appelée depuis le fichier de modèle, header.php – quixote