注销后返回到用户所在的位置

时间:2015-04-20 作者:Mayeenul Islam

我知道如何将已注销的用户引导到特定页面或URL,例如:

<a href="<?php echo wp_logout_url( home_url() ); ?>">Log out</a>
但是如果我想让用户重定向到他/她所在的URLjust was, 我能做什么?

虽然我对wp_get_referer(), 但我试过:

<?php $redirect_to = wp_get_referer() ? wp_get_referer() : home_url(); ?>
<a href="<?php echo wp_logout_url( $redirect_to ); ?>">Log out</a>
以及

<?php $redirect_to = $_SERVER[\'HTTP_REFERER\'] ? $_SERVER[\'HTTP_REFERER\'] : home_url(); ?>
<a href="<?php echo wp_logout_url( $redirect_to ); ?>">Log out</a>
没有运气:(

它总是把我带到home_url().

1 个回复
SO网友:fuxia

你得到电流path 具有remove_query_arg( \'\' ). 将其与site_url(), 并且您拥有完整的当前请求URI:

$url = untrailingslashit( site_url() );
$url .= remove_query_arg( \'\' );
请注意remove_query_arg() 不会返回经过清理的值,因此必须使用esc_url() 如果要将其打印到页面。否则,有人可能会在URL参数中向您的站点注入恶意代码。

wp_get_referer() 对于表单提交,它查找请求参数_wp_http_referer 与您的情况无关。

结束

相关推荐

如何在使用TEMPLATE_REDIRECT或TEMPLATE_INCLUDE后将帖子加载到自定义帖子模板

我需要使用URL参数?m=1 用不同的模板加载wordpress的每个页面,但问题是我无法提取可以使用规范URL访问的文本和帖子我尝试了不同的方法,对我来说最好的方法是使用template_redirect 行动挂钩或template_include 过滤器问题是,我无法使用任何这种方法将数据加载到模板文件中模板加载,但页面是空的,使用某些方法,它会返回404错误,以便更好地解释我的问题我将此代码添加到functions.phpadd_filter( \'template_include\', \'cus