워드프레스 댓글 날짜를 5분 전, 1시간 전, 3일 전 형식으로 변경하기

워드프레스 댓글 날짜를 실제 일자 대신 "5분 전", "1시간 전", "3일 전", "5달 전", "1년 전" 등과 같이 댓글을 작성한 후 경과 기간을 나타내도록 바꾸고 싶은 경우 human_time_diff() 함수를 사용할 수 있습니다.

워드프레스 댓글 날짜를 5분 전, 1시간 전, 3일 전 등의 형식으로 변경하기

이 블로그에서는 테스트로 댓글 날짜 형식을 실제 작성 일시(예: 2021년 12월 6일 오후 2시 40분) 대신 "10분 전", "2시간 전", "5일 전", "5달 전", "1년 전" 등과 같이 댓글 작성일부터 경과 시간을 표시하도록 바꾸어 보았습니다.

워드프레스 댓글 날짜를 5분 전, 1시간 전, 3일 전 형식으로 변경하기 2

이러한 날짜 형식은 트위터에서 사용된 형식입니다. 이런 형식으로 날짜를 변경할 경우 SEO에는 변화가 없다고 하는 것 같습니다. 실제로 이 블로그에서 댓글 날짜 형식을 위의 그림과 같이 변경한 후에도 방문자 유입에 유의미한 변화는 없었습니다. 그러므로 특별한 사정이 없는 한 굳이 위와 같은 형식으로 변경할 필요는 없을 것 같습니다.

날짜 형식을 경과 시간을 나타내고 싶은 경우 댓글 날짜 부분을 다음과 같은 코드로 바꾸면 됩니다.

<?php printf( _x( '%s ago', '%s = human-readable time difference', 'your-text-domain' ), human_time_diff( get_comment_time( 'U' ), current_time( 'timestamp' ) ) ); ?>

human_time_diff 함수에 대한 자세한 정보는 Codex 문서를 참고해보시기 바랍니다. 또한, WordPress Development Stack Exchange에 올라온 "change the comment time output to: X time ago instead of actual date and time"도 참고해보세요.

포스트 발행일을 "~ 전" 형식으로 표시하고 싶은 경우에는 Codex 문서에서 제시하는 다음과 같은 코드를 사용할 수 있습니다.

<?php
$lastmodified = get_the_modified_time('U');
$posted = get_the_time('U');
echo "발행: " . human_time_diff($posted,current_time( 'U' )). "전";
echo "</br>";
  if ($lastmodified > $posted) {
      echo "업데이트: " . human_time_diff($lastmodified,current_time('U')) . " 전";   
  } 
?>

GeneratePress 테마에서 댓글 날짜 형식을 "1분 전", "3시간 전", "5일 전"... 등과 같이 경과 시간을 표시하도록 변경하기

테마에서 훅(hook)을 제공한다면 쉽게 날짜 형식을 변경할 수 있습니다. 하지만 대부분 테마에서 댓글 날짜 형식을 변경할 수 있는 훅을 제공하지 않을 것입니다.

GeneratePress 테마 개발자에게 이 문제를 문의해보니 "The Time Ago"라는 워드프레스 플러그인이 있다고 알려주었습니다.

워드프레스 댓글 날짜를 5분 전, 1시간 전, 3일 전 등의 형식으로 변경하기

하지만 이 플러그인은 5년 이상 업데이트가 이루어지 않고 있으며, 사용자 수도 80명 내외에 불과합니다. 오랫동안 업데이트가 안 되고 있기 때문에 최신 워드프레스 버전에서 작동하지 않거나 다른 플러그인과 충돌을 일으킬 가능성이 있습니다.

저는 바람직한 방법은 아니지만 테마 파일에서 직접 댓글 날짜 부분을 수정했습니다.

제너레이트프레스 테마에서 댓글 날짜 형식으로 경과 시간 형식으로 바꾸려는 경우 \wp-content\themes\generatepress\inc\structure\comments.php 파일에서 댓글 날짜를 표시하는 부분을 다음과 같은 코드로 변경할 수 있습니다.

<div class="entry-meta comment-metadata">
                                <a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>">
                                    <time datetime="<?php comment_time( 'c' ); ?>" itemprop="datePublished">
                                         <?php echo esc_html( human_time_diff( get_comment_time( 'U' ), current_time( 'timestamp' ) ) ) . ' 전'; ?>
                                    </time>
                                </a>
                                <?php edit_comment_link( __( 'Edit', 'generatepress' ), '<span class="edit-link">| ', '</span>' ); ?>
                            </div>

다만, 테마 파일을 직접 수정했기 때문에 테마를 업데이트하면 수정 사항이 사라지게 됩니다.

마치며

이상으로 워드프레스 댓글 날짜 형식을 경과 시간("5분 전", "3달 전" 등) 형식으로 바꾸는 방법에 대해 살펴보았습니다. 이런 것도 있다는 정도만 알아두시며 될 것 같습니다.

참고


댓글 남기기

* 이메일 주소는 공개되지 않습니다.