PHP中的条件返回或关闭链接

时间:2016-11-28 15:58:22

标签: php wordpress

我试图在几个不同的时间找到解决方案,但在一个有效的解决方案上继续空洞。从本质上讲,我试图找到一种方法来建立一个“关闭”的链接。或者"返回"功能链接。条件是如果使用来自同一站点内的另一个页面,或者如果用户从外部链接(搜索引擎或其他方式)进入此页面。

这里有几个链接,可以进一步解释以及它们如何工作的示例: 此链接显示"列表"或帖子存档: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 } ?>

任何人都可以帮忙吗?

2 个答案:

答案 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() - 这很好用。