在哪里插入基于http_referer的重定向代码?

时间:2020-03-17 作者:TARKUS

如果客户端从特定的其他域到达我的WordPress站点,我想将客户端指向我站点上的特定页面。最好,我想使用PHP头函数来执行重定向,但将考虑非编码解决方案。

现在,我已经将条件代码放在活动主题标题的顶部。php文件,如果$_SERVER[\'HTTP_REFERER\'] == "some.domain.com" 然后,我使用常见的html元刷新执行重定向,如下所示:

if($_SERVER[\'HTTP_REFERER\'] == "https://www.somewebsite.com/"){
    ?><meta http-equiv="refresh" content="0; url=https://my.wordpresssite.com/my-custom-page/"><?php
}
PHPheader("Location: /my-custom-page/") 在那里不起作用,可能是因为内容输出已经发生了。Meta refresh目前可以完成这项工作,但它非常粗糙。我使用元刷新的主要问题是,即使在“0”秒的时间内,页面内容也已经开始加载,然后客户端被重定向到我真正想要的特殊页面。因此,用户可以在几秒钟内看到主页的刊头和其他部分,然后他们被带到我希望他们出现的页面。

WordPress甚至在加载头之前就执行许多文件和函数。php。我想知道在哪里可以将PHP标题重定向到WordPress中的相对页面(假设没有可行的非编码解决方案)。如果可能的话,我不想修改wp admin或wp include文件。

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

尝试template_redirect 挂钩(在functions.php):

add_action( \'template_redirect\', function () {
    if ( wp_get_raw_referer() === \'https://www.somewebsite.com/\' ) {
        wp_redirect( home_url( \'my-custom-page/\' ) );
        exit;
    }
});

相关推荐

生成元素的PHP代码在哪里?

当我对网站上某些元素的CSS/HTML/JS感兴趣时,我会预览它并在浏览器devtools中测试修改。我在这里很清楚。在PHP中是如何实现的?我在WordPress上有一个页面,我对一些元素感兴趣。我想知道生成这个元素的PHP代码在哪里。然后我想修改此代码并查看更改。最聪明的方法是什么?我知道我需要设计->主题编辑器中的文件。我也使用儿童主题。我在函数中实现了一些JS脚本。php。现在我感兴趣的是,例如,在主收藏和单个帖子中包含作者信息的元素。或者另一个问题:在编辑文章时,我们有“作者”字段。另一种