WordPress编辑器忽略换行符

时间:2016-09-08 17:32:58

标签: php wordpress custom-wordpress-pages

我正在使用为独特的注册网站定制的插件。在WP仪表板中有一个设置页面,管理员可以在其中编写发送给用户的注册确认电子邮件,此页面使用默认的wp编辑器(我认为它是TinyMCE)。

我确认了这一点,因为插件的setting.php有以下循环

<?php
  wp_editor( $content, $editor_id );
 ?>

问题在于,虽然编辑器在帖子和页面上工作正常,但是当我的插件的设置页面使用相同的编辑器发送电子邮件时,它会在没有换行的情况下发送。

我尝试在文字模式下使用编辑器创建包含<br /> <p></p><div></div>的换行符,但它们也不起作用,在保存更改后,html标记转换为富文本,即<br />转为&lt;br &gt;

这是我的发送邮件功能在插件中的样子:

function SendMails($Data){
$To          = $Data['To'];
$Subject     = $Data['Subject'];
$Sender      = $Data['SenderName'];
$From        = 'support@'.$_SERVER['SERVER_NAME'];
$Body        = $Data['Body'];
$Attachments = $Data['Attachments'];

$recipients = array($To);
$headers[] = "From: $Sender <$From>" . "\r\n";
$headers[] = "Content-Type: text/html";
$subj = $Subject;
$SendMail   = wp_mail( $recipients, $subj, $Body, $headers, $Attachments );
return $SendMail;
}

P.S。所有其他WP电子邮件都正确传递与换行符。

知道问题可能是什么和/或如何修复它?

1 个答案:

答案 0 :(得分:2)

使用此代码将转折转换为

$Body = preg_replace("/\r\n|\r|\n/",'<br/>',$Data['Body']);