在WordPress中为所有URL添加一些参数

时间:2010-11-17 15:38:16

标签: php html css wordpress

如何在WordPress的所有网页上为所有网址添加一些参数?我正在进行主题开发,我需要向潜在客户展示使用它的不同变体。所以,我有不同的配色方案。我找到了一个关于如何从url获取参数并在我的代码中使用它们的教程。现在,我可以轻松地使用像http://proceed.skible.com/?color=magic_night这样的网址来附加带有配色方案设置的CSS文件。它工作正常,但当我点击演示页面上的任何链接时,它显然不应用我的自定义配色方案,但应用保存在设置中的那个。我想我可以这样 - 添加?color = magic_night或我需要的所有链接的颜色方案。当然,我需要解析链接并以正确的方式添加它,而不是仅仅在每个URL的末尾插入它。更重要的是,可能有更好的方法来实现预览主题的misc功能的可能性?我看到了我在这里描述的方式:http://themes.mysitemyway.com/infocus/?themedemo=infocus&extracss=deep_blue。所有链接都以extracss = deep_blue或我从菜单中选择的其他主题结束。 感谢。

2 个答案:

答案 0 :(得分:1)

您应该使用PHP cookie在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语法有点生疏,但概念应该全部存在

答案 1 :(得分:0)

如果我理解正确,你想根据传递的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。