我正在尝试创建一个“返回搜索结果”链接,以便返回上一页。Wordpress PHP返回搜索结果
基本上,您可以执行搜索,然后进入单一页面。在这个页面中,我想创建链接。
我想: <?php $url = htmlspecialchars($_SERVER['HTTP_REFERER']); echo "<a href='$url'>back</a>"; ?>
,但只送你回以前的页面(让我们说有其他人从谷歌的网站...然后会带他回Google我想)
任何想法?
谢谢!
我正在尝试创建一个“返回搜索结果”链接,以便返回上一页。Wordpress PHP返回搜索结果
基本上,您可以执行搜索,然后进入单一页面。在这个页面中,我想创建链接。
我想: <?php $url = htmlspecialchars($_SERVER['HTTP_REFERER']); echo "<a href='$url'>back</a>"; ?>
,但只送你回以前的页面(让我们说有其他人从谷歌的网站...然后会带他回Google我想)
任何想法?
谢谢!
最后我管理一个$_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
从搜索结果集,它需要你回到结果。如果没有(例如,如果你直接从谷歌等链接)链接将重定向到首页(所有列表默认情况下出现)
您可能想要在使用之后取消设置会话变量,否则在用户浏览到单个页面时仍会设置该变量 - 来自不同推荐人的信息页。 – MarcGuay
'HTTP_REFERER' 将用户代理引用到当前页面的页面地址(如果有)。这由用户代理设置。并非所有的用户代理都会设置它,有些提供了将HTTP_REFERER修改为功能的功能。总之,它不能真正被信任。
来源:http://www.php.net/manual/en/reserved.variables.server.php
所以,你应该想到另一种方式来重新创建URL。尝试使用您正在执行的搜索将该URL作为POST变量发送。然后你可以简单地从$_POST
中读取它。
感谢您的回答。如何在两个不同的页面上使用'$ _POST'变量? (包含搜索结果的页面应该被存储,但是单个页面应该有链接) – tlt2w
有一件事要记住这样的链接(这是不同的每个人)是,你将失去使用W3 Total Cache或WP Super Cache之类的功能进行整页缓存的能力。如果性能/扩展是您网站的关注点,那么您应该考虑这个链接的重要性,或者考虑到这一点,构建您的解决方案。 –
为什么不呢?我只需要以某种方式存储url,然后在单个帖子页面上将其回显为否? – tlt2w