我试图在几个不同的时间找到解决方案,但在一个有效的解决方案上继续空洞。从本质上讲,我试图找到一种方法来建立一个“关闭”的链接。或者"返回"功能链接。条件是如果使用来自同一站点内的另一个页面,或者如果用户从外部链接(搜索引擎或其他方式)进入此页面。
这里有几个链接,可以进一步解释以及它们如何工作的示例: 此链接显示"列表"或帖子存档:http://hillsiderancho.com/care-ministries/
一旦用户进入其中一个帖子(http://hillsiderancho.com/care-ministries/celebrate-recovery/),右上角的链接应显示为"返回",并且应该只是充当浏览器后退按钮,以允许用户返回查看页面列表(或可能是引导他们访问此帖子的其他页面)。
另一个用例是如果用户从外部网站进入帖子,该按钮应显示为"关闭"然后将用户指向列表页面,而不是"浏览器返回"使他们再次远离网站的功能。我们希望将他们留在网站上,让他们从同一地区探索更多内容。
这是我现有的代码," Back"按钮在本节的几乎所有不同帖子中都有不同的功能......好像它从未击中过" else"条件,只提出一些其他奇怪的引用URL。 (我刚注意到我的href在"其他"条件中输了一个错字,但无论如何,它也没有到达那个页面):
<div class="post-close-btn">
<?php
$previousPage = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
$url = site_url();
if ($previousPage = $url){ ?>
<a href="<?php echo $_SERVER['HTTP_REFERER']; ?>" class="primaryBtn">
<div class="inner vAlign">
<span class="text">BACK</span>
</div>
</a>
<?php } else { ?>
<a href="/care-ministries/" class="primaryBtn">
<div class="inner vAlign">
<span class="text">Close</span>
</div>
</a>
<?php } ?>
任何人都可以帮忙吗?
答案 0 :(得分:0)
您在if语句中设置变量,而不是检查其值。
if ($previousPage = $url)
应该是:
if ($previousPage == $url)
答案 1 :(得分:0)
这是在纠正我的变量之后最终工作的代码(感谢Robyn Overstreet)
<?php
$previousPage = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
$url = site_url();
$url = preg_replace('#^https?://#', '', $url);
if ($previousPage == $url){ ?>
<a href="javascript:history.back();" class="secondaryBtn">
<div class="inner vAlign">
<span class="text">BACK</span>
</div>
</a>
<?php } else { ?>
<a href="/care-ministries/" class="secondaryBtn">
<div class="inner vAlign">
<span class="text">Close</span>
</div>
</a>
<?php } ?>
另外,我在这里找到了修复网址所需的位(并让它匹配):https://stackoverflow.com/a/9549893/4842348
最后,我应该注意到我的&#34; if&#34;声明href指向网站主页(呃,这就是告诉它做的事情) - 所以我交换了一个基本的JS history.back() - 这很好用。