Добавьте некоторый параметр ко всем URL в WordPress - PullRequest
2 голосов
/ 17 ноября 2010

Как я могу добавить некоторые параметры ко всем URL-адресам на всех страницах в WordPress?Я работаю над разработкой темы, и мне нужно показать потенциальному клиенту различные варианты ее использования.Итак, у меня разные цветовые решения.Я нашел учебник о том, как получить параметры из URL и использовать их в моем коде.Теперь я легко использую URL типа http://proceed.skible.com/?color=magic_night, чтобы прикрепить файл CSS с настройками цветовой схемы.Это работает нормально, но когда я нажимаю любую ссылку на демонстрационной странице, она, очевидно, не применяет мою пользовательскую цветовую схему, а применяет ту, которая сохраняется в настройках.Я думаю, что могу пойти по этому пути - добавить? Color = magic_night или любую другую цветовую схему мне нужно для всех ссылок.Конечно, мне нужно разобрать ссылки и добавить их правильно, а не просто вставлять в конце каждого URL.Более того, может быть, есть лучшие способы для реализации возможности предварительного просмотра разных функций темы?Я видел способ, который я описал здесь: http://themes.mysitemyway.com/infocus/?themedemo=infocus&extracss=deep_blue. Все ссылки заканчиваются на extracss = deep_blue или другую тему, которую я выбираю из меню.Спасибо.

Ответы [ 2 ]

1 голос
/ 17 ноября 2010

Вы должны использовать PHP-куки для хранения предпочтений пользователей по цвету между HTTP-запросами, но разрешить им переопределять их, используя переменные GET, о которых вы говорите:

# Get the value of color if specified on the URL (GET) or in a cookie
# If non of those place have the color, then color will be NULL
$color = isset($_GET['color']) ? $_GET['color'] : (
    isset($_COOKIE['color']) ? $_COOKIE['color'] : NULL
);

# If we know what color we have and didn't just get it from a cookie
# then set a cookie with that color as its value
if ($color != NULL && isset(! $_GET['cookie'])) {
    setcookie('color', $color);
}

Теперь, когда у вас есть значение $color, вы можете выбрать свою таблицу стилей любым удобным для вас способом, например:

<?php
    if ($color != NULL) {
        ?> <link rel="stylesheet" href="<?php bloginfo('stylesheet_direcctory'); ?>/<?php print($color); ?>.css" type="text/css" /> <?php
    }
?>

P.S. Мой PHP-синтаксис немного ржавый, но концепция должна быть в нем

0 голосов
/ 17 ноября 2010

Если я вас правильно понимаю, вы хотите использовать другую таблицу стилей, основанную на том, какие параметры URL передаются?Вы можете сделать это в файле заголовка вашей темы:

header.php:

//includes
<html>
...
<head>
...
<? 
 if($_GET['color'] == 'magic_night'){
?>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_direcctory'); ?>/magic_night.css" type="text/css" />
<?
}
else
...
?>
...rest of the page...

bloginfo ('stylesheet_direcctory') должен привести вас в каталог вашей темы, но я бы повторил этосначала в тестовом файле или используйте лучший параметр для bloginfo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...