워드프레스 최신 글 페이지나 블로그 페이지, 특정 카테고리 및 태그 페이지(아카이브 페이지)에서 글들은 보통 최신 날짜순으로 정렬됩니다. 경우에 따라 오래된 글부터 정렬되도록 하거나, 혹은 알파벳순(ABC, 가나다순)으로 정렬해야 하는 경우가 있을 수 있습니다.
워드프레스 블로그 페이지나 카테고리 페이지의 정렬을 변경하고 싶은 경우 워드프레스에서 제공하는 훅(Hook)을 사용하여 정렬 방식을 변경할 수 있습니다. 아바다, 엘리멘터 프로 등을 사용하는 경우 블로그 모듈/위젯을 사용하여 글들을 나열하고 설정에서 정렬 방식을 세부적으로 설정할 수 있습니다.
블로그 페이지(최신 글 페이지)에서 오래된 글부터 최신 글순으로 정렬하기
블로그 페이지(최신 글 페이지)에서 게시글들은 기본적으로 최근 발행된 글들이 먼저 나열되고 맨 끝에 가장 오래된 글이 표시됩니다.
오래된 글부터 먼저 나열하고 싶은 경우에는 다음과 같은 코드를 차일드 테마 함수 파일에 추가할 수 있습니다.
/**
* Sort posts on the blog page (home page) by date in ascending order (oldest to newest).
*/
function change_home_order( $query ) {
// Ensure this runs only for the main query on the blog page
if ( $query->is_main_query() && $query->is_home() ) {
$query->set( 'orderby', 'date' ); // Sort by post date
$query->set( 'order', 'ASC' ); // Sort in ascending order (oldest to newest)
}
}
add_action( 'pre_get_posts', 'change_home_order' );
워드프레스 블로그(최신 글)/카테고리 페이지 글을 알파벳순으로 정렬하는 방법
예를 들어, 경제 용어나 IT 용어를 설명하는 블로그를 만들거나, 사람 이름(인명)에 대한 정보를 올리는 사이트를 만드는 경우를 생각해 봅시다. 이 경우 시간이 중요하지 않고 사용자들이 쉽게 찾을 수 있도록 알파벳순(ABC, 가나다순)으로 글들을 나열하는 것이 좋을 수 있습니다.
최신 글 페이지(블로그 페이지)에서 포스트를 알파벳순으로 나열하고 싶은 경우 다음과 같은 코드를 테마 함수 파일에 추가할 수 있습니다.
/**
* Sort posts on the blog page (home page) by title in ascending order.
*/
function change_home_order( $query ) {
// Ensure this runs only for the main query on the blog page
if ( $query->is_main_query() && $query->is_home() ) {
$query->set( 'orderby', 'title' ); // Sort by post title
$query->set( 'order', 'ASC' ); // Sort in ascending order
}
}
add_action( 'pre_get_posts', 'change_home_order' );
자식 테마를 만들어서 작업해야 테마가 업데이트되어도 수정 사항이나 축가 사항이 사라지지 않습니다. FTP에 접속하여 /wp-content/themes/child-theme-name/functions.php 파일에 위의 코드를 추가하시기 바랍니다.
위의 코드를 추가한 후에 블로그 페이지를 새로 고침하면 알파벳순으로 글들이 나열될 것입니다. 제목에 특수문자가 있는 글들이 맨 앞에 표시되고, 숫자, 영문글자(abc),한글(가나다)순으로 나열됩니다.
GeneratePress 테마에서 테스트하니 잘 작동하네요. 다른 테마에서도 잘 작동할 것입니다.
특정 카테고리 페이지의 글들을 알파벳순을 나열하고 싶은 경우에는 다음과 같은 코드로 테스트해보시기 바랍니다.
function change_category_order( $query ) {
// Ensure this runs only for the main query on a specific category slug
if ( $query->is_main_query() && $query->is_category( 'blog' ) ) {
$query->set( 'orderby', 'title' ); // Sort by post title
$query->set( 'order', 'ASC' ); // Sort in ascending order (A → Z)
}
}
add_action( 'pre_get_posts', 'change_category_order' );
뉴스페이퍼, 아바다 테마의 블로그 모듈이나 엘리멘터 프로의 Posts 위젯을 사용하여 글을 나열하는 경우
아바다 테마, Divi 테마, 뉴스페이퍼 테마 등을 사용하는 경우 블로그 모듈/요소로 블로그 글들을 나열할 수 있습니다. 블로그 모듈에서 정렬 옵션을 세부적으로 지정할 수 있습니다.
예를 들어, 아바다 테마의 경우 블로그 엘리먼트의 설정에서 Order By에 Post Title를, Order에 Ascending을 선택하여 글들을 알파벳순으로 정렬할 수 있습니다.
정렬 기준으로는 댓글 개수(Number of Comments)나 램덤(Random)을 선택할 수도 있습니다.
엘리멘터 프로를 사용하는 경우 Posts 위젯을 사용하여 블로그 글들을 나열할 수 있습니다. Posts 위젯에서도 정렬 방식을 세부적으로 설정하는 것이 가능합니다.
엘리멘터 프로에서는 아바다와 비슷하게 정렬 기준으로 댓글 개수(Comment Count)를 선택할 수 있습니다. 인기글이나 핫한 글을 표시하고 싶을 때 댓글 개수를 기준으로 글들을 나열하는 것을 생각해볼 수 있습니다.
Divi 테마 등 페이지 빌더를 지원하는 테마를 사용하는 경우에도 블로그 관련 모듈을 사용하여 글들을 세부적으로 정렬할 수 있습니다.
댓글 남기기