Wordpress PHP回到搜索结果

时间:2014-02-26 14:41:04

标签: php wordpress

我正在尝试创建“返回搜索结果”链接,以便返回上一页。

基本上你可以进行搜索,然后进入单个帖子页面。在这个页面中,我想创建链接。

我试过了:         <?php $url = htmlspecialchars($_SERVER['HTTP_REFERER']); echo "<a href='$url'>back</a>"; ?>

但它只会将你送回上一页(让我们说有人从谷歌进入网站......那么我会把他带回谷歌。)

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

'HTTP_REFERER' 将用户代理引用到当前页面的页面地址(如果有)。这是由用户代理设置的。并非所有用户代理都会设置此功能,有些用户可以将HTTP_REFERER修改为功能。简而言之,它无法真正被信任。

来源:http://www.php.net/manual/en/reserved.variables.server.php

所以你应该想到另一种重新创建URL的方法。尝试使用您正在执行的搜索将URL作为POST变量发送。然后,您只需从$_POST中阅读。

答案 1 :(得分:0)

最后,我设法使用$_SESSION变量:

在点击搜索后加载的页面(通常是archive.php或类似的)我在页脚之前添加了这段代码:

            <?php 
            if (isset($_SERVER["REQUEST_URI"])) { 
            $_SESSION['url'] = $_SERVER["REQUEST_URI"];
            } 
            ?>  

然后,我在下面的代码中添加了以下代码:

<div class="back-to-search">
    <?php if (isset($_SESSION['url'])) : ?>
        <a href="<?php echo $_SESSION['url']; ?>">Back To Search</a>
    <?php else: ?>    
        <a href="<?php echo get_home_url(); ?>">Back To Search</a>
    <?php endif;?>
</div>

所以基本上如果从搜索结果中设置了$_SESSION,它会将您带回到结果中。如果没有(例如,如果您直接从谷歌等到达)该链接将重定向到主页(默认情况下显示所有列表)