워드프레스 글목록 최신 수정날짜 순으로 정렬하기

워드프레스 블로그에서 글목록 정렬방식을 최종 수정일 기준으로 정렬하는 방법이다. 구글에 검색해봐도 제대로 된 답을 찾을 수 없어서 챗GPT를 이용해 직접 코드를 삽입했다.

먼저 관리메뉴에서 최신글로 나오도록 설정을 올바르게 해놓았는지 확인한다.

워드프레스 최신글 정렬 메뉴

설정 > 읽기 > 홈페이지 표시 > 최신글로 선택하고 변경사항 저장을 누른다. 별도로 프롤로그 메인 페이지를 구축한 사람이 아니라면 보통은 이렇게 기본적으로 되어있을 것이다.

이제 아래 코드를 테마 편집기에 삽입하면 된다.

/**
 * Modify the main WordPress query to order posts by last modified date.
 *
 * @param WP_Query $query The main query object.
 */
function custom_order_by_last_modified( $query ) {
    // Don't run on admin or if the query is not the main query
    if ( is_admin() || ! $query->is_main_query() ) {
        return;
    }

    // Apply only on home page, category archive, and search results
    if ( $query->is_home() || $query->is_category() || $query->is_search() ) {
        $query->set( 'orderby', 'modified' );
        $query->set( 'order', 'DESC' );
    }
}
add_action( 'pre_get_posts', 'custom_order_by_last_modified' );

이 함수는 워드프레스의 메인 쿼리를 수정하여 게시물을 최종 수정된 날짜에 따라 정렬하는 역할을 한다. 공부도 할 겸 각 부분에 대한 간단한 설명을 곁들이는데 굳이 코딩 내용이 궁금하지 않고 개발자 할 게 아니라면 다 몰라도 되는 내용이다.

@param 으로 시작하는 첫 줄은 워드프레스 메인 쿼리 객체를 나타낸다.

function 으로 함수를 지정하는데 현재 페이지가 관리자 페이지인지 먼저 검사를 한 뒤, 관리자 페이지에서는 실행하지 않고 함수를 종료한다.

현재 쿼리가 메인 쿼리인지 확인하고 메인 쿼리만을 대상으로 함수를 실행한다. 메인화면, 카테고리, 검색 페이지인지 확인 후 함수를 작동시킨다. 작동 내용은 쿼리를 최종 수정된 (modified) 날짜 기준으로 정렬하도록 설정하는 것이다.

  • orderby : modified 최종 수정 날짜로 정렬
  • order : DESC 내림차순으로 정렬

위 두 가지 속성에 의해 최종 수정 날짜가 최근인 글이 가장 위에 노출되게 된다.

테마 파일 편집기 선택

위 소스코드를 복사한 다음, 외모 > 테마 파일 편집기로 들어간다. 차일드 테마를 선택하고 functions.php 안에 넣어주면 된다.

이렇게 하고 다시 글목록이나 블로그 내 검색결과 화면 등을 살펴보면, 작성일 기준이 아니라 최종 수정날짜 기준으로 정렬되어서 나오는 것을 확인할 수 있다.

최신 정보로 지속 업데이트하는 내용이 많은 블로그라면 이 방법을 통해 갱신한 글들이 최근 목록의 상단에 보이도록 해주는 것이 좋다.

0 0 투표
Article Rating

0 Comments
Inline Feedbacks
댓글 모두 보기