1. Home
  2. 테마 개발
  3. 테마의 기본
  4. 테마 이해하기

테마 이해하기

 

Theme & Template #1. 스터디 1주차 (2016.10.21) . 추가

■ 테마의 기본 구조

ThemeStudy #1-20161021

while 문 안에서는 the_ 로 시작하는 탬플릿 태그들로 컨텐츠의 요소들을 표시할 수 있다.
=> 타이틀, 작성자, 작성일, 카테고리명, 태그, 커스텀필드, 대표이미지, 갤러리, 컨텐츠 내용  등…

이 때 컨텐츠에 해당하는 부분만 따로 탬플릿으로 만들어 삽입을 할 수도 있음 (코드의 간소화, 관리에 도움)

(Theme & Template #3. 스터디 3주차 (2016.12.03) . 추가)

■ 루프의 시작과 끝 형태 알아보기

▼ 워드프레스 기본 테마 : twentyfifteen > index.php 파일 참고
loop-1

if로 시작해서 endif로 끝나는 비교문이 워드프레스의 기본 루프 형태입니다. 안쪽의 while 반복문을 통해서 표시할 컨텐츠가 있을 때까지, ‘content- …’이라는 탬플릿을 통해서 표시를 하게 됩니다.

이 때 the_post()는 이번 글(컨텐츠)에 대한 세팅을 새로 하는 것을 담당하며, 이 것이 있기 때문에 매번 반복문이 진행될 때마다 탬플릿 태그를 사용해서 정보를 표시할 수 있게 됩니다.

( Tip : 탬플릿 태그를 쉽게 구분하는 방법 – 뭔가 정보를 표시하는 태그는 the_ 로 시작 / 정보를 가져오기만 하는 태그는 get_the_ 로 시작.  the_가 있으면 get_the_ 도 있음 )

▼ 루프 구조 요약
loop-2

▼ 위 루프 내에서 불러와지는 탬플릿 파트 (content.php) 구조
loop-3위와 같은 탬플릿 구조로 웹 화면에 정보들이 표시가 됩니다. 제목을 표시되는 the_title(), 편집기 내 정보들을 표시하는 the_content(), 작성자의 메타정보를 얻어올 수 있는 get_the_author_meta() 들을 볼 수 있으며, 정보 표시를 조건에 따라 표시할 수 있도록 사용한 is_single()과 같은 conditional_tags 도 볼 수 있습니다.

웹페이지를 구성하다 보면 하나의 페이지 내에서 여러 컨텐츠들을 표시하는 경우가 많이 발생합니다. 예를 들어 최신글 목록 위쪽에 중요 글(featured)로 설정된 글 목록을 보여주고 싶을 경우, 메인페이지에 글 목록, 포트폴리오 목록, 최신 상품 목록을 모두 노출시키고 싶을 때 등등…
이럴 때에는 위와 같은 루프 구조가 여러 번 사용이 되는 멀티플 루프를 가진 페이지가 구성이 되어야 하는데, 이 때 사용이 되는 것이 커스텀 쿼리 구조(표시하고 싶은 조건 지정)입니다.  ▽▽▽

◎ 커스텀 쿼리 (custom query)

커스텀 쿼리를 만드는 방법

1. WP_Query     /     2. query_posts

두 함수 모두 커스텀 쿼리를 구성할 수 있지만, WP-_Query는 위에서 다룬 워드프레스의 기본 루프에 영향을 주지 않고, query_posts 는 쿼리 조건을 덮어써 버린다는 특징이 있어서 우선은 WP_Query 방식으로 구성하는 것을 스터디 시간에서는 다루었습니다.

▼ WP_Query 사용 멀티플 루프 구조 예

loop-4

커스텀 쿼리 내에서는 the_post() 와 별개의 $my_query->the_post()가 세팅이 되므로 메인 쿼리에는 영향을 주지 않음

  • $cat : 카테고리
  • $p : 글번호
  • $page_id : 페이지 아이디
  • $posts_per_page : 한 페이지 내에 보여줄 컨텐츠 목록 수
  • $category_name : 카테고리 슬러그

. . . 등등
이런 변수들을 활용해서 내가 원하는 컨텐츠 목록들을 준비시킬 수 있습니다.

ex) $query = new WP_Query( ‘cat=3, 8’ );    >   글 카테고리 중 3, 8번 카테고리 글들만 표시하려고 할 때
(※ 각종 쿼리 조건에 대한 사용 예는 codex > WP_Query 페이지에서 확인 가능)

How can we help?