여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. 워드프레스 포스트 정렬하기
워드프레스 포스트 정렬하기
1년전 작성
2년전 수정

특정 카테고리 / 페이지 등에 추가된 포스트의 순서를 표시하는 방법을 공부해보자.

여기서는 워드프레스의 pre_get_posts 후크를 이용한다.

functions.php에 추가
function order_posts( $query )
{
    if ( !is_admin() && $query->is_tag() || !is_admin() && $query->is_category('26') )
    {
        $query->set( 'orderby', 'title' );
        $query->set( 'order', 'ASC');
    }

    elseif ( !is_admin() && $query->is_date() )
    {
        $query->set( 'orderby', 'date' );
        $query->set( 'order', 'ASC');
    }
	return $query;
}
add_action( 'pre_get_posts', 'order_posts' );
사용된 코드 설명
order_posts( $query )
:
order_posts 라는 함수를 만든다.
if ( !is_admin() && $query->is_tag() || !is_admin() && $query->is_category(‘카테고리 숫자’) )
:
어드민 페이지가 아니고 태그 페이지일 때 또는 어드민 페이지가 아니고 특정 카테고리일 때를 나타내는 조건문이다.
$query->set( ‘orderby’, ‘title’ );
:
orderby는 어떤 항목으로 정렬할것인지 정렬의 기준을 정한다. wp_query 참고하여 기준 정하자.
$query->set( ‘order’, ‘ASC’);
:
order는 ASC(오름차순) / DESC(내림차순) 중 어떻게 정렬할지 정한다. wp_query 참고하여 기준 정하자.
elseif ( !is_admin() && $query->is_date() )
:
위의 조건이 맞지 않고 어드민 페이지가 아니고 date 페이지일 때를 나타내는 조건문이다.
참고

Mingg`s Diary
밍구
공부 목적 블로그