我注意到WordPress为我们提供了一些过滤器来自定义密码重置请求电子邮件,例如wp_mail_from
,retrieve_password_title
和retrieve_password_message
,最后两个在retrieve_password
函数中执行wp-login.php
如下:
$title = apply_filters( 'retrieve_password_title', $title );
$message = apply_filters( 'retrieve_password_message', $message, $key );
if ( $message && !wp_mail( $user_email, wp_specialchars_decode( $title ), $message ) )
wp_die( __('The e-mail could not be sent.') . "<br />\n" . __('Possible reason: your host may have disabled the mail() function.') );
return true;
这很酷,但我也意识到wp_mail
函数没有使用任何标题,这让我相信一切都应该用过滤器覆盖。
是否有覆盖标头的过滤器?具体是Content-Type
?注册它们的最佳位置在哪里?
答案 0 :(得分:3)
要仅在wp_mail_content_type
页面中运行过滤器wp-login.php
,我们可以使用one of its action hooks。未测试的:
add_action( 'login_form_retrievepassword', function()
{
add_filter( 'wp_mail_content_type', function( $old_content_type )
{
$new_content_type = 'text/plain';
return $new_content_type;
});
});