[WordPress] 워드프레스에서 is_single 과 is_singular 의 차이점을 알아보자

워드프레스를 코어를 기반으로 해서 테마나 플러그인을 만들다 보면 현재 사용자가 보고 있는 페이지가 개별 포스트인지 확인하기 위해 아래 두가지의 함수를 사용합니다. 사용자가 보고 있는 페이지 라는 말을 조금더 자세하게 쓰자면 현재 페이지를 로드하는 쿼리(Query)가 개별 포스트 혹은 페이지인지 확인한다는 것입니다.

  • is_single
  • is_singular

이 두 함수에 대해 알아봅시다.

is_single

is_single 함수는 현재 사용자가 개별 포스트를 보고 있는지 확인해 개별 포스트일 경우 true 를, 그렇지 않으면 false 를 반환합니다.

Works for any post type, except attachments and pages

그리고 보통은 아래와 같이 사용하죠.

if ( is_single() ) {
    /* 개별 포스트에 출력될 내용들 */
}

is_singular

is_singular 함수는 현재 사용자가 어떠한 종류의 개별 포스트 혹은 페이지를 보고 있으면 true, 그렇지 않으면 false 를 반환합니다.

if ( is_singular() ) {
    /* 개별 포스트 혹은 페이지에 출력될 내용들 */
}

실전예제

아래는 각 상황별 is_singleis_singular 의 반환 값들입니다.

상황 is_single is_singular
개별 포스트 true true
개별 사용자정의 포스트 true true
개별 페이지 false true
첨부파일 페이지 false true
포스트 목록 페이지 false false

크게 다르지 않은것 같으면서도 확실히 다른 함수이니 잘 구분해서 사용해야 됩니다.

참고자료