WP安装上的其他自定义代码阻止WP Discourse重定向回论坛

我们正在通过 WP Discourse 使用 DiscourseConnect,并已按照 meta 上的优秀设置指南进行操作。但是,在 WordPress 登录出现后,我们会被重定向到 WordPress 个人资料页面,而不是 Discourse。我们使用的是 WordPress 版本 6.0.1 和 WP Discourse 版本 2.4.5。

  1. 转到论坛页面
  2. 点击登录
  3. 重定向到 WordPress 站点 /wp-login.php
  4. 输入 WordPress 登录信息
  5. 跳转到 /wp-admin/profile.php
  6. 如果您再次输入论坛 URL,您将被重定向到登录页面。

我们已仔细检查了 URL 和密钥,它们都正常。用户存在于 WordPress 中并已验证电子邮件地址。还有其他地方可以查看吗?

查看 WP Discourse 日志或 Discourse 上的管理员日志似乎没有显示任何有趣的内容,但我已在此处包含它们:

wp-discourse-logs-metafile-2022-08-15-2022-08-29.txt (1.6 KB)
wp-discourse-2022-08-29-1-log.txt (8.5 KB)

Discourse /logs 的输出

Verbose SSO log: Started SSO process

add_groups: 
admin: 
moderator: 
avatar_force_update: 
avatar_url: 
bio: 
card_background_url: 
confirmed_2fa: 
email: 
external_id: 
groups: 
locale: 
locale_force_update: 
location: 
logout: 
name: 
no_2fa_methods: 
nonce: xxxxxxxxxxxxxxx
profile_background_url: 
remove_groups: 
require_2fa: 
require_activation: 
return_sso_url: https://forum.innovativeusers.org/session/sso_login
suppress_welcome_message: 
title: 
username: 
website:
2 个赞

@wesochuck 感谢您的详细解释。

这很可能是您正在使用的另一个插件之间存在冲突。过去我们遇到过类似的行为,是因为另一个插件使用了诸如 wp_redirect 之类的过滤器。

请逐一停用您的插件列表,并尝试登录。如果您在主题中有任何自定义代码,也请进行同样的操作。

2 个赞

感谢您的回复。关于如何追踪可能导致问题的插件或自定义代码,您还有其他建议吗?我们已经尝试禁用所有插件,但尚未找到解决方案。

我相信这一定是某个非标准的修改所致,但除非要从头开始重建整个网站,否则我们很难追踪到具体原因。

2 个赞

如果您能够搜索您网站上运行的非核心 WordPress 代码,请搜索以下字符串:

  • wp_redirect(一个过滤器)
  • wp_login_url(一个方法)
  • parse_query(一个操作)

检查这些字符串的任何实例在何处找到。过去,这曾是由其他插件错误地使用其中一个过滤器、方法或操作引起的。

我无法提供更多帮助,因为这里的问题并非由 WP Discourse 插件引起。这是 WordPress 安装中某个主题、插件或其他脚本中的自定义代码所导致的问题。

很遗憾,我无法在此处找出问题所在,WP Discourse 插件也无法以任何方式记录此问题。WordPress 的过滤器、方法和操作可以被任何东西使用,“优先级”(即执行顺序)也可以被任何东西覆盖。

3 个赞

这非常有帮助,是一个很好的起点。谢谢!一旦我们找到原因,我会回来报告,这样其他人就不必费力挖掘了。

1 个赞

我们将其范围缩小到X-CD的插件,这是一个会议和会员管理平台。我们将联系他们,看看他们是如何更改登录流程导致集成中断的。

感谢您的帮助 @angus

2 个赞

会员管理公司协助进行了以下更改,解决了问题:

我将以下代码添加到了您当前主题的 functions.php 文件中:

function example_allow_extra_redirect( $hosts ) {
$hosts = '[forum.example.org](http://forum.example.org/)';
return $hosts;
}
add_filter( 'allowed_redirect_hosts', 'example_allow_extra_redirect' );
1 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.