这个问题令人困惑,因为我们不知道你最终想要完成什么,但我将尝试回答我可能会做些什么来回答我认为你在问什么:
我们有一个内部SSO登录插件。该插件通过SSO自动登录用户-用户永远不会看到登录页面。
听起来不错。这可能是你问题中最清楚的部分。
之前,我们可以使用“注销”url访问用户的手动登录,但随着最近的WP核心更新,这一点不再有效。
我不明白您如何使用注销url访问用户的手动登录。除非你想说你可以“注销”,这会让你进入登录屏幕(这有点违背了“永远看不到登录页面”的想法)Wordpress为您提供了一个带有函数的登录urlwp_login_url() 但此页面对于已登录的用户不可见-->已登录的用户将被重定向,因为他们不需要登录。
所以想知道如何创建一个不使用任何插件的重复登录页面?
这个问题完全抵消了你的第一句话。除非您要求创建一个没有使用SSO登录插件的页面。如果是这种情况(您希望有选择地加载SSO登录插件),则可以对不希望激活的页面使用自定义页面模板、类别或其他指定,然后重新编程SSO登录插件,使其在页面使用该自定义模板、类别等时不加载。
有没有更好的方法来回答这个问题?是否有一个WP挂钩可以让您手动从核心页面删除插件?
据我所知不是这样。您可能可以使用自己的MU插件破解一个解决方案,该插件比所有其他插件都要先加载,但有很多更好的方法可以完成几乎所有事情,而无需手动从核心页面删除插件
除非我误解了您想要实现的目标,否则我会编写一个简单的“助手”插件(或修改您的SSO插件),检查用户是否已注销,如果用户当前未登录,则使用SSO对其进行验证。这样,当他们第一次访问站点的主页(或任何页面)时,他们会立即进行身份验证和登录,即使主页上没有显示任何专门为他们定制的内容。
如果你想编程一种“更改用户”的方法,那么你可以让插件始终对SSO系统的当前用户进行身份验证(而不是简单地尝试仅对注销用户进行身份验证),这样,如果用户通过SSO系统进行更改,登录的用户将在下一次加载网站页面时自动更改。
--或--
您可以对SSO插件(或helper插件)进行编程,以检查url中的特定字符串(通过Get),然后使用该字符串强制执行重新身份验证过程。(即。mysite.com/?reauth=1 --> $_GET["reauth"] == 1 将触发SSO插件log-out 当前用户,并通过SSO(如果存在)登录新用户。)
这将使您实现从不显示登录页面的目标,但允许您通过特殊链接自动或手动切换用户。
同样,我认为这回答了您的问题,但如果没有,请让我们知道。