지식 DB

상용 서비스를 위한 진짜 워드프레스 정보

다양한 쿼리 루프 블록에 공통으로 적용할 수 있는 7가지 팁

발행:

| 업데이트:

지식

WP스퀘어의 모든 정보는 국내 상용 서비스를 기준으로 작성됩니다.

기본 쿼리 반복문, Kadence Blcoks Pro 고급 쿼리 루프, GenerateBlocks 쿼리 루프 등에 공통적으로 적용되는 팁입니다.

리소스 마다 쿼리 루프 블록 관련 용어가 달라 혼선이 있을 수 있습니다. 용어 사전의 쿼리 루프(Query Loop Block) 블록포스트 템플릿(Post Template) 블록 항목을 확인해 주십시오.

1. 되도록 기본 블록을 사용한다.

블록 수트가 제공하는 블록(예: Kadence Blocks 고급 텍스트)은 워드프레스 기본 블록에 비해 2~3배 정도의 쿼리를 증가시킵니다. 개별 포스트에서는 전혀 의미가 없는 정도지만, 복수의 포스트를 출력하는 쿼리 루프에서는 영향이 있습니다.

예를 들어 4개의 필드(제목, 특성 이미지, 발행일, 카테고리)를 불러오고 블록 수트의 블록이 2배의 쿼리를 가져온다고 가정해 보겠습니다. 그리고, 포스트 수는 20개로 합니다. 이 경우 필드 호출에 요구되는 쿼리수는 아래와 같게 됩니다.

코어 블록블록 수트 블록
4(내부 블록 갯수)X20(포스트 갯수)
=80개의 쿼리
4(내부 블록 갯수)X2(증가된 쿼리)X12(포스트 수)
=160개의 쿼리

더불어 기본 블록을 사용하면 컨텐트 락킹에 대한 우려가 감소합니다. 하지만, 위 정도의 쿼리가 속도나 성능에 매우 심각한 이슈를 일으키는 않으므로 블록 수트의 블록 사용을 금지할 필요는 없습니다. 단 기본 블록을 우선한다는 정도로 이해해 주십시오.

2. 일부 블록은 블록 수트의 블록을 쓴다.

대부분의 경우 기본 블록을 권장하나 일부 특성 이미지와 같은 일부 블록을 블록 수트에서 제공하는 걸 사용하는 게 좋을 수도 있습니다.

  • 글 특성 이미지 블록 → 썸네일 선택이 안되므로 Kadence Blcoks 고급 이미지나 GenerateBlocks 이미지 블록을 사용합니다.
  • 3. 몇몇 쿼리 루프은 쇼트코드가 동작하지 않으나…

3. 플러그인 내장 블록이 더 느릴 수 있다.

거의 대부분의 블록은 개별 포스트 템플릿과 쿼리 루프 양쪽에 모두 사용할 수 있습니다. 하지만, 플러그인이 제공하는 일부 블록은 많은 쿼리를 발생시킬 수 있습니다. 개별 포스트에서는 거의 문제가 안되는 수준이지만, 다량의 포스트를 출력하는 쿼리 루프에서는 문제가 될 수도 있습니다. 예를 들어 우커머스가 제공하는 상품 가격 블록은 동일한 기능을 구현한 Meta Filed Block에 비해 느립니다. 이 경우 상품 가격 블록이 아니라 Meta Field Block을 씁니다. 저희 추정은 쿼리 루프에 대한 고려가 되지 않은 것 같습니다.

4. 루프 아이템을 레아아웃 관련 블록으로 묶고 여기에 링크를 건다.

글 특성 이미지, 날짜, 제목 등 개별 필드에서 포스트로 이동하는 링크를 제거하고, 이를 레이아웃 관련 블록으로 묶어 여기에 링크를 겁니다.

블록 수트블록링크 가능 여부
워드프레스 코어그룹(Group)X
Kadence Blocks 열 레이아웃(Row Layout)X
Kadence Blocks섹션(Section)O
GenerateBlocks컨테이너(Container)O (Pro에서만 제공)
레아아웃 관련 블록의 링크 가능 여부
루프 아이템을 KB 섹션으로 묶은 경우

위와 같이 처리하면 다양한 장점이 있습니다.

  • 사용성 향상: 사용자가 정확히 제목이나 날짜 등을 클릭하지 않고, 루프 아이템 전체에 링크가 동작하게 됩니다. 택소노미 용어 등 다른 값에 대해 다른 링크를 제공하길 원하면 레이아웃 관련 블록을 추가로 사용하고 해당 블록에 다른 링크를 걸면 됩니다.
  • 속도 향상: 포스트 URL에 대한 DB 쿼리가 루프 아이템당 1개만 발생하므로 속도가 빨라집니다.
  • 요약글 링크: 링크가 제공되지 않는 요약글에도 링크가 동작하게 됩니다.
  • 패턴으로 저장 가능: 쿼리 루프에 사용되는 대부부의 루프 아이템은 패턴으로 저장할 수 없으나, 이를 레이아웃 관련 블로그으로 감싸면 패턴으로 저장할 수 있습니다. 자세한 사항은 다음 팁을 확인해 주십시오.

5. 루프 아이템을 패턴으로 저장해 재사용한다.

여러 곳에 동일한 루프 아이템을 썼을 경우, 이를 별도로 수정하는 건 매우 비효율적입니다. 하지만, 루프 아이템 자체를 패턴으로 저장하면 한 곳에서 변경하면 모든 곳에 동시 적용됩니다.

패턴으로 저장된 루프 아이템

이렇게 만들어진 루프 아이템은 쿼리 루프 블락이나 포스트 템플릿에 영향을 받지 않습니다. 예를 들어 패턴으로 저장된 루프 아이템을 한 곳에서는 4열로 사용하고 다른 곳에서는 3열로 사용할 수 있습니다.

이렇게 저장한 쿼리 루프 아이템을 패턴에서 직접 편집하면 포스트 ID를 불러오지 못하는 상태가 됩니다. 반드시 해당 쿼리 루프 블록이 삽입된 화면에서 편집해야 합니다.

6. 아카이브에는 템플릿 쿼리 상속을 쓴다.

거의 모든 쿼리 블록 블록은 템플릿의 쿼리를 상속 받는 설정을 가지고 있습니다. 복수의 쿼리 루프를 사용하지 않는 경우라면, 템플릿에서 쿼리를 상속 받게 합니다. 그렇지 않으면 눈에 보이지 않지만, 워드프레스 main query와 쿼리 블록의 쿼리가 동시 실행되어 속도에 영향을 줍니다.

7. 필터링은 FacetWP에 양보하세요.

Kadence Blcoks Pro 고급 블록은 자체적인 필터 블록이 있고, 쿼리 반복문도 필터링을 위한 익스텐션이 존재하지만 다양한 필터링 소스, 다양한 인터페이스, 속도를 위행 FacetWP를 권장합니다. FacetWP는 기본 쿼리 반복문 뿐 아니라 대부분의 유명 쿼리 루프 블록과 호환됩니다. 자세한 사항은 다양한 쿼리 루프 블록과 FacetWP 연동하기에서 확인할 수 있습니다.

[/wcm_restrict]

태그

글쓴이

Photo of author

메아쿨파

팀과 함께 워드프레스 관련 자문과 개발을 하고 있습니다. 상용 서비스르를 필요로 하는 기업과 스타트업, 높은 수준의 워드프레스를 만들고 싶은 에이전시, WP스퀘어 필진으로 참여하고 싶으신 분은 문의하기로 남겨 주시기 바랍니다.