はじめに
訪問者同士のコミュニケーションを活発にするため、新しいコメントがついたことを視覚的に伝えることは非常に効果的です。
そこで、標準のコメント欄だけでなく、サイドバーなどにある「最近のコメント」ウィジェットにも、書き込みから一定期間「NEW」を自動表示させるようにします。
この記事では、この方法について説明します。
完成イメージ


実装手順
以下の手順で実装します。
- ラベルPHPを追加
以下のコードをfunctions.phpに追加します。
/** * コメントが新着期間内か判定 * * @param int|string $comment_id コメントID * @return bool 新着の場合はtrue、そうでない場合はfalse */ if (!function_exists('is_comment_new')): function is_comment_new($comment_id) { $comment_obj = get_comment($comment_id); if (!$comment_obj) { return false; } // NEWマークを表示する日数(例: 3日以内) $days = 3; $now = current_time('U'); $comment_time = strtotime($comment_obj->comment_date); return ($now - $comment_time) < ($days * DAY_IN_SECONDS); } endif; // コメントリストのクラスを変更 add_filter('comment_class', function ($classes, $class, $comment_id) { if (is_comment_new($comment_id)) { $classes[] = 'comment--new'; } return $classes; }, 10, 3); // テンプレート(最近のコメント)を変更 add_filter('cocoon_part__tmp/widget-recent-comments', function ($content, $name, $args) { $comment_id = $args['comment']->comment_ID; // 現在時刻が期限内の場合はクラスを追加 if (is_comment_new($comment_id)) { $content = preg_replace('/(class=")(recent-comment-link)/', '$1comment--new $2', $content); } return $content; }, 10, 3); - ラベルCSSを追加
以下のコードをstyle.cssに追加します。
.comment--new { .comment-author .fn, .recent-comment-author { &::before { background-color: #ff0000; color: #fff; content: 'NEW'; font-size: 8px; font-weight: normal; margin-right: 5px; padding: 0 3px; vertical-align: middle; } } }
さいごに
今回紹介した方法を使えば、標準のコメント欄だけでなく、サイドバーの「最近のコメント」ウィジェットにも自動で「NEW」マークを表示できるようになります。
サイトの回遊率アップやコメントの活性化にぜひ役立ててください。

