我正在网站上创建一个自定义密码重置页面,并试图利用retrieve_password() 发送重置电子邮件。发送重置电子邮件后,我想wp_redirect 用户返回登录页面,并显示一条快闪消息,告诉他们检查电子邮件。问题就在于此:
如果您查看上面的链接,您会注意到Hookr建议使用retrieve_password() 检查函数是否存在,如果不包括wp-login.php, 其中WordPress(核心)定义了该函数。看来我的wp_loaded 处理此过程的操作不会在加载该文件的上下文中发生,因此我需要包括wp-login.php 在我可以使用之前retrieve_password().
问题是wp-login.php 自动执行一些客户端渲染,这会导致发送标头,从而阻止我将来发送标头。wp_redirect() 依赖于头的使用来工作,因此是不可靠的,因为它在后面被称为wp-login.php 包括在内。
看来我有几个选择;即:
包裹require_once \'wp-login.php 在输出缓冲区中,以防止渲染/标题复制+粘贴或重写retrieve_password() 外部wp-login.php, 并引用我的新版本your suggestion here?这些选项对我来说似乎都不太有吸引力。使用输出缓冲区似乎是一种不好的做法,而且我不完全确定这样做时,其他所有内容都将在后台运行。我宁愿尽可能多地利用WordPress内置的密码重置功能,因此我也不愿重写retrieve_password() 作用
我相信这之前已经做过了。这里有人有什么建议吗?我是否在寻求一个糟糕的解决方案retrieve_password(), 而不仅仅是写我自己的电子邮件逻辑?