워드프레스 포스트에 최종 수정 날짜 표시 방법

일반적으로 워드프레스 사이트의 개별 포스트에 글 발행 날짜가 표시됩니다. 발행 날짜 대신 최종 수정 날짜로 변경하면 방문자가 보기에 최신 정보가 담긴 더 가치 있는 글로 인식할 수 있고, 구글 같은 검색엔진에서도 업데이트 날짜가 표시하므로 SEO에 유리할 수 있습니다.

참고로 URL에 글 발행 연도와 날짜가 표시되는 것은 SEO에 항상 불리합니다. 사용자들이 URL에 표시된 연도를 보고 글 링크를 클릭하지 않을 가능성도 있습니다. SEO에 유리한 고유주소 체계는 SEO에 유리한 워드프레스의 URL 구조를 참고해보세요.

글 발행 날짜 vs. 수정 날짜 표시

워드프레스에서는 개별 글에 글 발행 날짜와 수정 날짜(업데이트 날짜)를 표시할 수 있습니다. 보통은 글이 공개된 날짜가 표시되지만 원하는 경우 수정 날짜만 표시하거나 둘 다 표시할 수 있습니다.

글 발행일을 표시할 경우 구글 등의 검색엔진에 노출될 때 몇 년 전에 발행된 글로 표시되어 새로운 정보를 찾는 사용자들이 클릭을 하지 않을 가능성도 있습니다.

업데이트 날짜를 표시하면 글이 오래되었더라도 정보를 업데이트하면 최근에 수정된 날짜가 구글에 반영되어 노출되므로 SEO(검색엔진최적화)에 도움이 될 수 있습니다.

워드프레스 포스트에 발행 날짜 대신 수정 날짜 표시 - 마지막으로 업데이트된 날짜가 구글 검색엔진에 노출된다.
몇 년 전에 발행된 글이더라도 수정 날짜를 표시하면 마지막으로 업데이트된 날짜가 구글에 노출된다.

경우에 따라 발행 날짜와 수정 날짜를 모두 노출시킬 수 있지만, 이 경우 보통 발행 날짜가 검색엔진에 반영될 수 있습니다. 발행 날짜를 표시하는 경우 업데이트가 언제 이루어졌는지 표시해주는 것도 고려해볼 수 있습니다. 예시:

[ 이 글은 2020년 3월 7일에 최종 업데이트되었습니다. ]

워드프레스 포스트에 최종 수정 날짜 표시 방법

대부분의 워드프레스 테마에서 포스트에 발행 날짜(Post Date) 대신 수정 날짜(Modified Date)를 표시하는 옵션을 제공하지 않습니다. 개별 글에 최종 수정 날짜를 표시하고 싶은 경우 아래의 방법을 이용할 수 있습니다.

일반적인 방법

일반적으로 다음과 같은 코드를 테마 파일 내의 적절한 곳에 넣거나 발행 날짜 부분을 대체할 수 있습니다.

// 워드프레스 포스트에 글 변경 날짜 표시
$u_time = get_the_time('U'); 
$u_modified_time = get_the_modified_time('U'); 
if ($u_modified_time >= $u_time + 86400) { 
echo "<p>Last modified on "; 
the_modified_time('F jS, Y'); 
echo " at "; 
the_modified_time(); 
echo "</p> "; } 

또는 다음과 같은 코드를 테마의 함수 파일에 추가하는 것도 고려해볼 수 있습니다.

// 글 콘텐츠 상단에 글 변경 날짜 추가
function wpb_last_updated_date( $content ) {
$u_time = get_the_time('U'); 
$u_modified_time = get_the_modified_time('U'); 
if ($u_modified_time >= $u_time + 86400) { 
$updated_date = get_the_modified_time('F jS, Y');
$updated_time = get_the_modified_time('h:i a'); 
$custom_content .= '<p class="last-updated">Last updated on '. $updated_date . ' at '. $updated_time .'</p>';  
} 
 
    $custom_content .= $content;
    return $custom_content;
}
add_filter( 'the_content', 'wpb_last_updated_date' );

위의 코드를 사용할 경우 반드시 차일드 테마(자식 테마 또는 하위 테마라고도 함)를 만들어 적절한 테마 파일 내에 추가하거나 차일드 테마 폴더 내의 함수 파일(functions.php)에 추가하시기 바랍니다. 그렇지 않으면 테마가 업데이트될 때 수정 사항이 사라지게 됩니다.

테마에서 후크를 제공하는 경우: GeneratePress 테마에서 포스트에 최종 수정 날짜 표시 방법

이 블로그에 현재 GeneratePress 테마가 적용되어 있습니다. GeneratePress 테마에서도 글 변경 날짜를 표시하는 옵션이 제공되지 않지만 이 테마에서는 다양한 후크(액션/필터)가 제공되므로 후크를 활용하여 수월하게 포스트 날짜를 글이 최종적으로 변경된 날짜로 바꿀 수 있습니다.

GeneratePress에서 '업데이트 날짜'를 표시하고 싶은 경우 자식 테마를 만들고 자식 테마 내의 함수 파일에 다음과 같은 코드를 추가하도록 합니다.

// Display 'Last Modified Date' in GeneratePress
// GeneratePress 테마에서 업데이트 날짜 표시하기
add_filter( 'generate_post_date_output', function( $output, $time_string ) {
    $time_string = '<time class="entry-date published" datetime="%1$s" itemprop="datePublished">%2$s</time>';

    if ( (get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) && is_singular( 'post' ) ) {
        $time_string = 'Last Updated: <time class="entry-date updated-date" datetime="%3$s" itemprop="dateModified">%4$s</time>';
    }

    $time_string = sprintf( $time_string,
        esc_attr( get_the_date( 'c' ) ),
        esc_html( get_the_date() ),
        esc_attr( get_the_modified_date( 'c' ) ),
        esc_html( get_the_modified_date() )
    );

    return sprintf( '<span class="posted-on">%s</span> ',
        $time_string
    );
}, 10, 2 );

테마 파일을 저장한 후에 포스트를 새로 고침해보면 그림과 같이 최종 업데이트 날짜가 표시됩니다. (업데이트날짜가 표시되지 않으면 캐시 플러그인의 캐시를 삭제하고 브라우저의 캐시도 삭제하시기 바랍니다.)

GeneratePress Last Update Date Shown compressor - 워드프레스 포스트에 최종 수정 날짜 표시 방법

만약 포스트 날짜가 표시되지 않으면 워드프레스 관리자 페이지 > 테마 디자인 > 사용자 정의하기 > Layout > Blog로 이동한 후 Single 탭을 클릭하고 Display post date 옵션의 체크박스를 선택하면 GeneratePress 테마의 블로그 글에 포스트 날짜가 표시됩니다.

GeneratePress 테마 - 포스트 날짜 표시 옵션

Blog 옵션 페이지에서 블로그 글에 표시할 포스트 메타 데이터를 설정할 수 있습니다.

참고:


6 개 댓글

  1. 아예 게시한 날짜를 없애려면 뭘 변경해야되나요??
    사진을 올렸는데 사진을 올린 날짜와 게시자아이디가 나오는데
    둘다 안나오게요..
    그냥 깔끔하게 사진만 나오도록 하려합니다.

    응답
    • 다음 글을 참고하여 포스트 작성자 이름(아이디)와 발행일을 표시되지 않도록 해보시기 바랍니다.

      https://www.thewordcracker.com/basic/how-to-hide-author-information-in-wordpress/

      사용 중인 테마와 사이트 주소를 알려주시면 CSS 코드로 숨길 수 있도록 관련 코드를 알려드리겠습니다.

      응답
  2. 뉴스페이퍼의 경우 Cloud Templetes 에서 Single 페이지를 구성해서 할수 있긴한데 상당히 귀찮습니다. 원하는 Single 페이지도 없고 고쳐서 쓰기도 애매하고 뉴스페이퍼 테마의 경우는 저 코드들이 일부 먹히긴 한던데 잘 안되네요.

    테마에서 후크를 지원한다고 하셨는데 그게 무슨말인지 잘 이해가 가질 않네요.

    응답
    • 뉴스페이퍼 테마의 기본 템플릿 중 하나를 사용하고 계시나요?

      조금 살펴보니 DEFAULT SITE POST TEMPLATE을 사용했다면 Style 2가 아닌가 생각되네요.

      뉴스페이퍼의 경우 일반적인 방법으로 차일드 테마가 작동하지 않습니다.

      스타일 2를 사용한다는 전제하에 설명드릴게요.

      /wp-content/plugins/td-standard-pack/Newspaper/parts/single 폴더에 있는 스타일 파일(스타일 2의 경우 loop-single-2.php 파일과 single_template_2.php 파일)을 차일드 테마 폴더 내의 /wp-content/themes/Newspaper-child/parts/single 폴더로 복사합니다.

      업데이트 날짜로 표시하고 싶은 경우 날짜 부분을 https://www.thewordcracker.com/en-us/how-to-show-the-last-updated-date-for-posts-in-newspaper/ 글에서 "Replace it with the following:" 바로 아래에 제시된 코드로 교체하시면 됩니다.

      스크린샷을 참고해보세요.

      https://www.screencast.com/t/508D3NJX6

      다른 스타일을 이용하는 경우에도 비슷한 방식으로 하면 됩니다.

      다만 Default 스타일을 이용할 경우에는 single.php 파일을 수정해야 하는데요. 이 경우 제대로 작동하지 않을 것입니다. 왜냐하면 single.php 파일에서 경로가 하나 잘못되었기 때문입니다. 경로를 제대로 수정하면 문제가 해결됩니다.

      시간 날 때 뉴스페이퍼에서 차일드 테마를 활용하는 방법에 대한 글을 하나 작성하려고 생각 중이지만... 좀처럼 기회가 안 나네요.
      다음 주에 한 번 정리해봐야겠습니다.

      응답
      • style2 맞습니다. 차일드 테마로 복사한후에 해봤습니다. 역시 테마 구조에 대해서 빠삭하시군요. 저 방법을 생각해봤으나, 구조에 대해서 잘 몰라서 못하고 있었는데 감사합니다.

        말씀하신데로 수정하니 잘 되는군요. 정말 감사드립니다. 구조를 이해하니 다른것들도 이런 방식으로 하면될듯 합니다.

        https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=http%3A%2F%2Fcfile8.uf.tistory.com%2Fimage%2F998FE2395E64B49903B20E

      • 제가 뉴스페이퍼를 사용할 당시 메이저 업데이트가 두 차례 있었습니다.

        첫 번째 메이저 업데이트 때에는 테마의 기본 템플릿 기능이 tagDiv Composer로 이동되었습니다. 그러다가 최근 메이저 업데이트에서는 테마의 기본 템플릿 기능이 tagDiv Standard Pack으로 이동되었습니다.

        그러므로 기본 템플릿(스타일)을 사용하는 경우 tagDiv Standard Pack 내의 파일을 활용해야 합니다.

        저도 이 부분을 잘 몰라서 뉴스페이퍼와 몇차례 메일을 주고받고서 겨우 이해할 수 있었습니다.
        뉴스페이퍼는 tagDiv Cloud Library에서 커스터마이징하는 방식으로 바뀌었고, 표준 워드프레스 방식과는 조금 먼 방식을 채택하고 있습니다.

        아마 더 이상 이상하게 바뀌지는 않을 것 같습니다.

        위에서 언급한 스타일 파일에서 불필요한 요소(가령 Author name, Views 등)는 삭제해도 됩니다.

댓글 남기기