【问题标题】:Wordpress: check if last visited page was homepage?Wordpress:检查最后访问的页面是否是主页?
【发布时间】:2015-07-07 15:10:55
【问题描述】:

我对 Wordpress 还很陌生,在 PHP 方面确实需要一些帮助。在我的 wordpress 页面(我们称之为页面 A)上,我想调用 jQuery 动画,但仅如果访问者从我的 wordpress 主页单击 a 以到达页面 A。

所以要明确一点,我如何在页面 A 上调用 jQuery 动画 假设上一页是主页?

我想使用 is_home() 来测试访问者来自的页面。但据我了解,is_home() 只能用于测试当前页面是否为首页。

有没有办法解决这个问题?

【问题讨论】:

    标签: php jquery wordpress visited


    【解决方案1】:

    你可以使用 History 对象,它有 back 方法,你可以检查它是否返回你主页的 URL

    另一种选择是在您的所有页面上使用 cookie

    $.cookie("previousPage", window.location.href, {path:"/"});
    

    然后检查PageA

    if($.cookie("previousPage") == 'yourhomepage') {
       //call animation
    }
    

    注意: 如果您使用 jquery cookie 插件,则 $.cookie 可用,该插件可以在 here 找到

    有用的链接:

    【讨论】:

    • 请注意,这与 http 引荐来源网址一样不可靠。可以禁用 Cookie,例如 http 引荐来源网址。
    • 80 端口也可以被阻止。有多少用户阻止了 Javascript 1%? HTTP_REFERER 也可以从服务器的响应中删除。我在这个答案中假设用户启用了 JavaScript,而且如果他没有启用,那么动画将无法正常工作。如果用户阻止 cookie,那么他同意该页面不会具有 100% 的功能,并且知道他们做什么的用户会期望它 IMO。
    • 没关系!这个检查只是是否运行动画。这对网页的功能根本不重要:)
    【解决方案2】:

    WordPress PHP 函数 get_home_url() 为您提供主页的 URL (see documentation)。然后在 JavaScript 中你可以使用document.referrer 来比较:

    var home_page = '<?php echo get_home_url(); ?>';
    if(home_page == document.referrer) {
      //Animate with jQuery, or whatever it is you want to do.
    }
    

    您还可以使用$_SERVER['HTTP_REFERER'] 在 PHP 中获取上一页。无论您使用 JavaScript 还是 PHP,信息都可能不可靠,因为它来自浏览器。但如果每次都正确并不重要,那就足够了。

    请注意,如果您出于某种原因在您的主页 URL 中包含单引号 ('),这将不起作用。

    【讨论】:

    • 非常感谢! 99% 的人肯定这个回复正是我所希望的!
    • 再想一想,似乎 document.referrer 显示为空,我似乎无法弄清楚原因。这是否与它来自内部链接有关?
    猜你喜欢
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 2011-07-03
    • 1970-01-01
    相关资源
    最近更新 更多