评论通知邮件无样式:接管核心通知正文 #39
卸载 wpDiscuz 后,评论通知回落到核心 wp_notify_postauthor / wp_notify_moderator。theme-mail.php 只接管了通道(SMTP、From), 并把 Content-Type 强改成 text/html,而正文仍是核心拼的纯文本, 客户端按 HTML 渲染 ⇒ 换行丢、链接变裸地址。 新增 inc/theme-mail-core.php,挂 comment_notification_text / comment_moderation_text 两个过滤器,把正文换成主题模板。这是核心 自己提供的扩展点,不改核心文件,删掉即回退。 模板新增 links 参数,把 通过/回收站/垃圾 渲染成一行文字链接 (并排三按钮在手机上必然换行、高度不齐)。 版本 4.2.1 -> 4.2.2
This commit is contained in:
@@ -750,6 +750,9 @@ function yang_mail_button($text, $url, $bg = null, $fg = null)
|
||||
* @type string $cta_url 按钮链接
|
||||
* @type string $note 底部提示(纯文本)
|
||||
* @type string $badge 顶部小标签,如「新评论」
|
||||
* @type array $links 次要操作链接,每项 array('text'=>, 'url'=>)。
|
||||
* 用于后台管理动作(通过/回收站/垃圾),渲染成一行文字链接,
|
||||
* 不做成并排按钮:手机宽度下三个按钮必然换行、高度不齐。
|
||||
* }
|
||||
* @return string 完整 HTML
|
||||
*/
|
||||
@@ -767,6 +770,7 @@ function yang_mail_render($args)
|
||||
'cta_url' => '',
|
||||
'note' => '',
|
||||
'badge' => '',
|
||||
'links' => array(), // 次要操作链接 array('text'=>, 'url'=>),渲染成一行文字链接
|
||||
));
|
||||
|
||||
/* 统一成 $quoteList:
|
||||
@@ -973,6 +977,30 @@ function yang_mail_render($args)
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if (!empty($d['links']) && is_array($d['links'])): ?>
|
||||
<?php /* 次要操作链接行(通过 / 回收站 / 垃圾)。
|
||||
为什么是文字链接而不是并排按钮:
|
||||
· 手机宽度下三个按钮必然换行、高度不齐,看起来像渲染出错;
|
||||
· 这些是后台管理动作,不该和「查看评论」抢视觉权重。
|
||||
分隔符直接写 U+00B7 字符本身,不用字符实体 —— 遵循本文件
|
||||
一以贯之的约定:实体被多解码或少解码一次就会露出原文。 */ ?>
|
||||
<div style="margin:0 0 26px 0;font-family:<?php echo $sans; ?>;font-size:13px;line-height:1.9;">
|
||||
<?php
|
||||
$linkCount = count($d['links']);
|
||||
foreach ($d['links'] as $li => $lk):
|
||||
if (empty($lk['text']) || empty($lk['url'])) {
|
||||
continue;
|
||||
}
|
||||
?>
|
||||
<a href="<?php echo esc_url($lk['url']); ?>" target="_blank" rel="noopener" style="color:<?php echo esc_attr($cMuted); ?>;text-decoration:underline;"><?php echo esc_html($lk['text']); ?></a><?php
|
||||
if ($li < $linkCount - 1) {
|
||||
echo '<span style="color:' . esc_attr($cTintMid) . ';"> · </span>';
|
||||
}
|
||||
endforeach;
|
||||
?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ($d['note'] !== ''): ?>
|
||||
<div style="font-family:<?php echo $sans; ?>;font-size:13px;color:<?php echo esc_attr($cMuted); ?>;line-height:1.7;padding:16px 0 0 0;border-top:1px solid <?php echo esc_attr($cTintLine); ?>;">
|
||||
<?php echo esc_html($d['note']); ?>
|
||||
|
||||
Reference in New Issue
Block a user