1

我有一个名为的自定义文件夹/portal/,它接受诸如/portal/?id=123or之类的参数/portal/?id=321

/portal/index.php文件中,我包含以下内容,如果用户未通过身份验证,它将自动将用户重定向到 WP 登录。

include_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );

如果未登录,它们会自动重定向到http://www.domain.com/wp-login.php?redirect_to=http%3A%2F%2Fwww.domain.com%2F&reauth=1.

如何修复redirect_to参数,使其包含路径和参数?我希望重定向看起来像这样:

http://www.domain.com/wp-login.php?redirect_to=http%3A%2F%2Fwww.domain.com%2Fportal%2F?id%3D123&reauth=1

这样,一旦用户登录,他们将被重定向到他们首先尝试访问的页面。

4

2 回答 2

0

我能够想出一个 hack 来检查以 . 开头的 cookie 密钥是否存在wordpress_logged_in_。如果 cookie 密钥不存在,则我将登录页面重定向到http://www.domai.com/wp-login.php?redirect_to=http%3A%2F%2Fwww.domain.com'.urlencode($_SERVER['REQUEST_URI']).

于 2012-12-21T18:22:46.140 回答
0

首先,wp-load.php不推荐包含 -请不要包含 wp-load - 有几个原因。

大概您已将 Wordpress 配置为需要登录,这就是您要重定向到登录页面的原因,并且因为它是直接从您的包含中发生的,所以您不能在加载之前插入任何过滤器来更改重定向,并且之后使用它们没有实际意义,因为重定向已经触发。

如果这是作为插件构建的,它将由 wp-load 加载,并且您可以访问login_url过滤器,您可以使用它来添加重定向,如下例所示: http: //trepmal.com/filter_hook/login_url/ .

于 2012-11-08T02:50:23.820 回答