【问题标题】:Check for cookie before page load in Wordpress [closed]在 Wordpress 中加载页面之前检查 cookie [关闭]
【发布时间】:2021-05-06 14:59:09
【问题描述】:

我有一个 Wordpress 页面,我需要执行以下操作:

  1. 在页面加载前检查名称为petar_cookie的cookie是否存在
  2. 如果没有 cookie,照常加载页面
  3. 如果是 cookie,则重定向到不同的 URL

有没有办法在 Wordpress 中实现这一点?

我找到了一些允许您在页面中输入 PHP 代码的插件,但这无济于事 - 一旦页面开始加载,我就无法从 PHP 重定向。

所以,我需要一种在页面的 <head> 部分之前插入 PHP 代码的方法,并且我需要它能够在此时读取 $_COOKIE 数组。

【问题讨论】:

  • 向我们询问有关查找任何此类插件的建议/帮助,一开始将被视为离题。如果你想自己实现这个,那么要走的路是找到一个 hooks ,它在整个页面构建过程的早期运行,在任何输出创建之前,并从您自己的插件(或从主题的 function.php 中)添加自己的函数调用。
  • 我会 hook 我的自定义函数检查 cookie 到 after_setup_theme 只是因为它发生在 cookie 身份验证之前加载 wordpress 的早期
  • @Luuk 再次阅读。 OP 说他们以前从未使用过 WP,但他们继承了一个 WP 站点,所以他们需要帮助。在问题中有没有办法在 Wordpress 中实现这一点?
  • OP 说他们通常不使用 WP。

标签: php wordpress


【解决方案1】:

将以下代码放在活动主题的functions.php上:

function redirect_if_cookie() {
      if ( is_page('slug-of-your-page') && isset($_COOKIE['petar_cookie'])) {
          wp_redirect( home_url( '/new-url/' ) );
          die;
      }
}
add_action( 'template_redirect', 'redirect_if_cookie' );

https://developer.wordpress.org/reference/hooks/template_redirect/

【讨论】:

  • 这适用于检查 cookie。但是,当它重定向到软件子域时,用户现在没有在该选项卡中登录到软件。但是在另一个选项卡中,用户已登录。我不知道这怎么可能。
  • 子域与原站点不同?
  • Wordpress 在 domain.com,软件在 software.domain.com
猜你喜欢
  • 2018-04-28
  • 1970-01-01
  • 2015-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-15
  • 2021-11-23
相关资源
最近更新 更多