我正在尝试用Html邮件替换WP核心密码重置邮件。总体上效果很好,邮件格式化得很好,并且正确发送。然而,实现动态重置链接不起作用(用户名也是如此,但这甚至不是最重要的事情)
我在我的模板的functions.php中使用了以下代码:
add_filter( 'wp_mail_content_type','prefix_set_content_type' ); function prefix_set_content_type() { return "text/html"; } add_filter( 'retrieve_password_message', 'replace_retrieve_password_message', 10, 2 ); function replace_retrieve_password_message( $message, $key, $user_login, $user_data ) { $message = '很多html内容(基本上是格式化的邮件)'
这样做会导致致命错误,因为函数期望4个参数,但只接收到2个(错误报告邮件中说的)。当我省略$user_data和$key时,错误消失了,但我仍然不知道如何实现动态链接...
当我尝试在Html中包含这个链接时,它只会发送链接的一半(可能是由于'""'的原因):
' . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . '
有人对如何解决这个问题有什么想法吗?谢谢。
在这行的末尾放上4,而不是2。
你必须告诉add_filter()和add_action()钩子函数需要多少个参数。