我正在嘗試創建一個「返回搜索結果」鏈接,以便返回上一頁。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