Skip to content

Commit

Permalink
✨ 增加文章超过时效提示及相关优化
Browse files Browse the repository at this point in the history
  • Loading branch information
Licoy committed Apr 12, 2023
1 parent 92ba2d7 commit d13a7b1
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 93 deletions.
171 changes: 78 additions & 93 deletions functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -538,99 +538,84 @@ function pk_update()
}
}

//添加文章修改时间提示
function pk_last_updated_date( $content ) {
$u_time = get_the_time('U');
$u_modified_time = get_the_modified_time('U');
$custom_content = '';
if ($u_modified_time >= $u_time + 8640000) { //判断文章更新的时间是否大于100天
$updated_date = get_the_modified_time('Y-m-j');
$updated_time = get_the_modified_time('h:i');
$custom_content .= '<div class="c-alert c-alert-warning"><i class="far fa-exclamation-triangle"></i>提醒:本文最后更新于 '. $updated_date . ' at '. $updated_time .' 文中所描述的信息可能已发生改变,请仔细核实。</div>';
}
$custom_content .= $content;
return $custom_content;
}
add_filter( 'the_content', 'pk_last_updated_date' );


//WordPress 评论回复邮件通知代码
function pk_comment_mail_notify($comment_id) {
$admin_notify = '1'; // admin 要不要收回复通知 ( '1'=要 ; '0'=不要 )
$admin_email = get_bloginfo ('admin_email');
$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
$comment = get_comment($comment_id);
$parent_id = $comment->comment_parent ? $comment->comment_parent : '';
$spam_confirmed = $comment->comment_approved;
global $wpdb;
$comments_waiting = $wpdb->get_var("SELECT count(comment_ID) FROM $wpdb->comments WHERE comment_approved = '0'");
if (($parent_id != '') && ($spam_confirmed != 'spam') && ($to != $admin_email)) {
$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
$to = trim(get_comment($parent_id)->comment_author_email);
$subject = '您在 [' . $blogname . ']' . ' 中的留言有了新回复!';
$message = '
<div style="background-color:white;border-left: 2px solid #555555;box-shadow:0 1px 3px #AAAAAA;line-height:180%;padding:0 15px 12px;width:500px;margin:50px auto;color:#555555;font-family:"Source Sans Pro","Hiragino Sans GB","Microsoft Yahei",SimSun,Helvetica,Arial,Sans-serif,monospace;font-size:14px;">
<h2 style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:13px 0 10px 8px;">
<span style="color: #409eff;font-weight: bold;">&gt; </span>
您在 <a style="text-decoration:none; color:#409eff;font-weight:600;" href="' . home_url() . '">' . $blogname . '</a> 的留言有回复啦!
</h2>
<div style="font-size: 14px; color: #777; padding: 0 10px; margin-top: 18px;">
<p><b>' . trim(get_comment($parent_id)->comment_author) . '</b> 同学,您曾在文章<b>《' . get_the_title($comment->comment_post_ID) . '》</b>上发表评论:</p>
<p style="background: #F5F5F5; padding: 10px 15px; margin: 18px 0;">' . nl2br(strip_tags(get_comment($parent_id)->comment_content)) . '</p>
<p>' . '<b>' . trim($comment->comment_author) . '</b>'. ' 给您的回复如下:</p>
<p style="background: #F5F5F5; padding: 10px 15px; margin: 18px 0;">' . nl2br(strip_tags($comment->comment_content)) . '</p>
<p>您可以点击 <a style="text-decoration:none; color:#409eff" href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看完整的回复內容</a>,也欢迎再次光临 <a style="text-decoration:none; color:#409eff"
href="' . home_url() . '">' . $blogname . '</a>。祝您生活愉快!</p>
<p style="padding-bottom: 15px;">(此邮件由系统自动发出,请勿直接回复!)</p>
</div>
</div>';
$from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
wp_mail( $to, $subject, $message, $headers );
}

//文章有新评论时通知管理员
if ($parent_id == '' && (trim($comment->comment_author_email) != trim($admin_email)) && ($spam_confirmed != 'spam') && ($comment->comment_approved != 0)){
$wp_email = '';
$subject = '在「' . $blogname .'」的文章《'. get_the_title($comment->comment_post_ID) .'》一文有新的评论';
$message = '
<div style="background-color:white;border-left: 2px solid #555555;box-shadow:0 1px 3px #AAAAAA;line-height:180%;padding:0 15px 12px;width:500px;margin:50px auto;color:#555555;font-family:"Source Sans Pro","Hiragino Sans GB","Microsoft Yahei",SimSun,Helvetica,Arial,Sans-serif,monospace;font-size:14px;">
<h2 style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:13px 0 10px 8px;">
<span style="color: #409eff;font-weight: bold;">&gt; </span>
<a style="text-decoration:none;color: #409eff;" href="' . home_url() . '">' . $blogname . '</a> 博客有新的评论啦!
</h2>
<div style="padding:0 12px 0 12px;margin-top:18px;">
<p><b>'. $comment->comment_author . '</b> 同学在文章<b>《' . get_the_title($comment->comment_post_ID) . '》</b>上发表评论:</p>
<p style="background-color: #f5f5f5;border: 0px solid #DDD;padding: 10px 15px;margin:18px 0;">' . $comment->comment_content . '</p>
<p>您可以点击 <a style="text-decoration:none; color:#409eff" href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看完整的回复內容</a>,也欢迎再次光临 <a style="text-decoration:none; color:#409eff" href="' . home_url() . '">' . $blogname . '</a>。祝您生活愉快!</p>
</div>
</div>';
$headers = "Content-Type: text/html; charset=" . get_option('blog_charset') . "\n";
wp_mail( $admin_email, $subject, $message, $headers );
}

//评论需要审核时通知
if ($parent_id == '' && (trim($comment->comment_author_email) != trim($admin_email)) && ($spam_confirmed != 'spam') && ($spam_confirmed != 'trash') && ($comment->comment_approved == 0)){
$wp_email = '';
$subject = '在「' . $blogname .'」的文章《' . get_the_title($comment->comment_post_ID) . '》中有新的评论需要审核';
$message = '
<div style="background-color:white;border-left: 2px solid #555555;box-shadow:0 1px 3px #AAAAAA;line-height:180%;padding:0 15px 12px;width:500px;margin:50px auto;color:#555555;font-family:"Source Sans Pro","Hiragino Sans GB","Microsoft Yahei",SimSun,Helvetica,Arial,Sans-serif,monospace;font-size:14px;">
<h2 style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:13px 0 10px 8px;">
<span style="color: #409eff;font-weight: bold;">&gt; 「 </span>
<a style="text-decoration:none;color: #409eff;" href="' . home_url() . '">' . $blogname . '」</a> 中有一条评论等待您的审核
</h2>
<div style="padding:0 12px 0 12px;margin-top:18px;">
<p><b>'. $comment->comment_author . '</b> 同学在文章<b><a style="text-decoration:none;color: #409eff;" href="' . get_permalink($comment->comment_post_ID) . '">《' . get_the_title($comment->comment_post_ID) . '》</a></b>上发表评论:</p>
<p style="background-color: #f5f5f5;border: 0px solid #DDD;padding: 10px 15px;margin:18px 0;">' . $comment->comment_content . '</p>
<p><a style="text-decoration:none;color: #007017;" href="'. admin_url( "comment.php?action=approve&c={$comment_id}#wpbody-content" ) . '">[批准评论]</a> | <a style="text-decoration:none;color: #b32d2e;" href="'. admin_url( "comment.php?action=trash&c={$comment_id}#wpbody-content" ) . '">[移至回收站]</a>。您还可以:<a style="text-decoration:none; color:#b32d2e" href="' . admin_url( "comment.php?action=delete&c={$comment_id}#wpbody-content" ) . '">永久删除评论</a> | <a style="text-decoration:none;color: #b32d2e;" href="'. admin_url( "comment.php?action=spam&c={$comment_id}#wpbody-content" ) . '">标记为垃圾评论</a>
<p>当前有 ' . $comments_waiting . ' 条评论等待审核。请移步<a style="text-decoration:none;color: #409eff;" href="' . admin_url('edit-comments.php?comment_status=moderated#wpbody-content') . '">审核页面</a>来查看。</p>也欢迎再次光临 <a style="text-decoration:none; color:#409eff" href="' . home_url() . '">' . $blogname . '</a>。祝您生活愉快!</p>
</div>
</div>';
$headers = "Content-Type: text/html; charset=" . get_option('blog_charset') . "\n";
wp_mail( $admin_email, $subject, $message, $headers );
}
}
add_action('comment_post', 'pk_comment_mail_notify');

////WordPress 评论回复邮件通知代码 TODO 等待测试改进
//function pk_comment_mail_notify($comment_id)
//{
// $admin_notify = '1'; // admin 要不要收回复通知 ( '1'=要 ; '0'=不要 )
// $admin_email = get_bloginfo('admin_email');
// $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
// $comment = get_comment($comment_id);
// $parent_id = $comment->comment_parent ? $comment->comment_parent : '';
// $spam_confirmed = $comment->comment_approved;
// global $wpdb;
// $comments_waiting = $wpdb->get_var("SELECT count(comment_ID) FROM $wpdb->comments WHERE comment_approved = '0'");
// if (($parent_id != '') && ($spam_confirmed != 'spam') && ($to != $admin_email)) {
// $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
// $to = trim(get_comment($parent_id)->comment_author_email);
// $subject = '您在 [' . $blogname . ']' . ' 中的留言有了新回复!';
// $message = '
// <div style="background-color:white;border-left: 2px solid #555555;box-shadow:0 1px 3px #AAAAAA;line-height:180%;padding:0 15px 12px;width:500px;margin:50px auto;color:#555555;font-family:"Source Sans Pro","Hiragino Sans GB","Microsoft Yahei",SimSun,Helvetica,Arial,Sans-serif,monospace;font-size:14px;">
// <h2 style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:13px 0 10px 8px;">
// <span style="color: #409eff;font-weight: bold;">&gt; </span>
// 您在 <a style="text-decoration:none; color:#409eff;font-weight:600;" href="' . home_url() . '">' . $blogname . '</a> 的留言有回复啦!
// </h2>
// <div style="font-size: 14px; color: #777; padding: 0 10px; margin-top: 18px;">
// <p><b>' . trim(get_comment($parent_id)->comment_author) . '</b> 同学,您曾在文章<b>《' . get_the_title($comment->comment_post_ID) . '》</b>上发表评论:</p>
// <p style="background: #F5F5F5; padding: 10px 15px; margin: 18px 0;">' . nl2br(strip_tags(get_comment($parent_id)->comment_content)) . '</p>
// <p>' . '<b>' . trim($comment->comment_author) . '</b>' . ' 给您的回复如下:</p>
// <p style="background: #F5F5F5; padding: 10px 15px; margin: 18px 0;">' . nl2br(strip_tags($comment->comment_content)) . '</p>
// <p>您可以点击 <a style="text-decoration:none; color:#409eff" href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看完整的回复內容</a>,也欢迎再次光临 <a style="text-decoration:none; color:#409eff"
// href="' . home_url() . '">' . $blogname . '</a>。祝您生活愉快!</p>
// <p style="padding-bottom: 15px;">(此邮件由系统自动发出,请勿直接回复!)</p>
// </div>
// </div>';
// $from = "From: \"" . get_option('blogname') . "\" <$wp_email>";
// $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
// wp_mail($to, $subject, $message, $headers);
// }
// //文章有新评论时通知管理员
// if ($parent_id == '' && (trim($comment->comment_author_email) != trim($admin_email)) && ($spam_confirmed != 'spam') && ($comment->comment_approved != 0)) {
// $wp_email = '';
// $subject = '在「' . $blogname . '」的文章《' . get_the_title($comment->comment_post_ID) . '》一文有新的评论';
// $message = '
// <div style="background-color:white;border-left: 2px solid #555555;box-shadow:0 1px 3px #AAAAAA;line-height:180%;padding:0 15px 12px;width:500px;margin:50px auto;color:#555555;font-family:"Source Sans Pro","Hiragino Sans GB","Microsoft Yahei",SimSun,Helvetica,Arial,Sans-serif,monospace;font-size:14px;">
// <h2 style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:13px 0 10px 8px;">
// <span style="color: #409eff;font-weight: bold;">&gt; </span>
// <a style="text-decoration:none;color: #409eff;" href="' . home_url() . '">' . $blogname . '</a> 博客有新的评论啦!
// </h2>
// <div style="padding:0 12px 0 12px;margin-top:18px;">
// <p><b>' . $comment->comment_author . '</b> 同学在文章<b>《' . get_the_title($comment->comment_post_ID) . '》</b>上发表评论:</p>
// <p style="background-color: #f5f5f5;border: 0px solid #DDD;padding: 10px 15px;margin:18px 0;">' . $comment->comment_content . '</p>
// <p>您可以点击 <a style="text-decoration:none; color:#409eff" href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看完整的回复內容</a>,也欢迎再次光临 <a style="text-decoration:none; color:#409eff" href="' . home_url() . '">' . $blogname . '</a>。祝您生活愉快!</p>
// </div>
// </div>';
// $headers = "Content-Type: text/html; charset=" . get_option('blog_charset') . "\n";
// wp_mail($admin_email, $subject, $message, $headers);
// }
// //评论需要审核时通知
// if ($parent_id == '' && (trim($comment->comment_author_email) != trim($admin_email)) && ($spam_confirmed != 'spam') && ($spam_confirmed != 'trash') && ($comment->comment_approved == 0)) {
// $wp_email = '';
// $subject = '在「' . $blogname . '」的文章《' . get_the_title($comment->comment_post_ID) . '》中有新的评论需要审核';
// $message = '
// <div style="background-color:white;border-left: 2px solid #555555;box-shadow:0 1px 3px #AAAAAA;line-height:180%;padding:0 15px 12px;width:500px;margin:50px auto;color:#555555;font-family:"Source Sans Pro","Hiragino Sans GB","Microsoft Yahei",SimSun,Helvetica,Arial,Sans-serif,monospace;font-size:14px;">
// <h2 style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:13px 0 10px 8px;">
// <span style="color: #409eff;font-weight: bold;">&gt; 「 </span>
// <a style="text-decoration:none;color: #409eff;" href="' . home_url() . '">' . $blogname . '」</a> 中有一条评论等待您的审核
// </h2>
// <div style="padding:0 12px 0 12px;margin-top:18px;">
// <p><b>' . $comment->comment_author . '</b> 同学在文章<b><a style="text-decoration:none;color: #409eff;" href="' . get_permalink($comment->comment_post_ID) . '">《' . get_the_title($comment->comment_post_ID) . '》</a></b>上发表评论:</p>
// <p style="background-color: #f5f5f5;border: 0px solid #DDD;padding: 10px 15px;margin:18px 0;">' . $comment->comment_content . '</p>
// <p><a style="text-decoration:none;color: #007017;" href="' . admin_url("comment.php?action=approve&c={$comment_id}#wpbody-content") . '">[批准评论]</a> | <a style="text-decoration:none;color: #b32d2e;" href="' . admin_url("comment.php?action=trash&c={$comment_id}#wpbody-content") . '">[移至回收站]</a>。您还可以:<a style="text-decoration:none; color:#b32d2e" href="' . admin_url("comment.php?action=delete&c={$comment_id}#wpbody-content") . '">永久删除评论</a> | <a style="text-decoration:none;color: #b32d2e;" href="' . admin_url("comment.php?action=spam&c={$comment_id}#wpbody-content") . '">标记为垃圾评论</a>
// <p>当前有 ' . $comments_waiting . ' 条评论等待审核。请移步<a style="text-decoration:none;color: #409eff;" href="' . admin_url('edit-comments.php?comment_status=moderated#wpbody-content') . '">审核页面</a>来查看。</p>也欢迎再次光临 <a style="text-decoration:none; color:#409eff" href="' . home_url() . '">' . $blogname . '</a>。祝您生活愉快!</p>
// </div>
// </div>';
// $headers = "Content-Type: text/html; charset=" . get_option('blog_charset') . "\n";
// wp_mail($admin_email, $subject, $message, $headers);
// }
//}
//
//add_action('comment_post', 'pk_comment_mail_notify');

if (is_admin()) {
// 在线更新支持
Expand Down
20 changes: 20 additions & 0 deletions inc/fun/opt.php
Original file line number Diff line number Diff line change
Expand Up @@ -579,3 +579,23 @@ function pk_safe_base64_decode($string){
}
return base64_decode($data);
}


//添加文章修改时间提示
function pk_post_expire_tips_open($content)
{
$u_time = get_the_time('U');
$u_modified_time = get_the_modified_time('U');
$custom_content = '';
if ($u_modified_time >= $u_time + (86400*pk_get_option('post_expire_tips_day',100))) {
$updated_date = get_the_modified_time('Y-m-d H:i');
$tips = str_replace('{date}', $updated_date, pk_get_option('post_expire_tips',''));
$custom_content .= '<p class="fs12 c-sub">'.$tips.'</p>';
}
$custom_content .= $content;
return $custom_content;
}

if (pk_is_checked('post_expire_tips_open')) {
add_filter('the_content', 'pk_post_expire_tips_open');
}
26 changes: 26 additions & 0 deletions inc/setting/options/OptionBasic.php
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,32 @@ function get_fields(): array
'type' => 'switch',
'sdt' => false,
],
[
'id' => '-',
'type' => 'panel',
'open' => pk_is_checked('post_expire_tips_open'),
'label' => __('文章超过时效提示', PUOCK),
'children'=>[
[
'id' => 'post_expire_tips_open',
'label' => __('启用', PUOCK),
'type' => 'switch',
'sdt' => 'false',
],
[
'id' => 'post_expire_tips_day',
'label' => __('大于N天', PUOCK),
'type' => 'number',
'sdt' => 100,
],
[
'id' => 'post_expire_tips',
'label' => __('提示内容', PUOCK),
'sdt' => __('<i class="fa fa-circle-exclamation me-1"></i>提醒:本文最后更新于{date},文中所关联的信息可能已发生改变,请知悉!', PUOCK),
'tips' => __('{date}:文章最后更新时间', PUOCK),
],
]
],
[
'id' => '-',
'type' => 'panel',
Expand Down

0 comments on commit d13a7b1

Please sign in to comment.