Hugo에서 블로그 게시물 목록 페이지 제목에 페이지 번호를 추가하는 방법
일부 검색 엔진은 웹사이트에 제목이 동일한 페이지가 있을 경우 이를 좋아하지 않습니다...
Page content
블로그 게시물 목록 페이지 제목에 **페이지 번호를 추가하는 방법**을 적용하려면 목록 템플릿을 수정해야 합니다.
(보통 layouts/blog/list.html
또는 layouts/_default/list.html
, 때로는 layouts/_default/baseof.html
에도 적용될 수 있음)
현재 페이지가 페이징된 페이지인지 확인해야 합니다. 그런 다음, 적절한 경우 페이지 번호를 제목에 동적으로 추가합니다.
일반적인 설명
핵심 아이디어는 Hugo의 내장된 paginator 객체를 사용하고, 페이지 번호가 1보다 큰 경우에만 페이지 번호를 표시하는 조건을 적용하는 것입니다. 아래와 같이 수행할 수 있습니다:
- Paginator에 접근:
목록 페이지에서.Paginator
를 사용하여 페이징 기능을 활용합니다. - 현재 페이지 확인:
.Paginator.PageNumber
를 사용하여 현재 페이지 번호를 얻습니다. - 제목 조건 로직:
- 페이지 1일 경우, 일반 제목(
{{ .Title }}
)을 표시합니다. - 페이지 2 이상일 경우,
" - Page X"
를 제목에 추가합니다.
- 페이지 1일 경우, 일반 제목(
예시 Hugo 템플릿 코드 (목록 페이지의 list.html
부분 또는 baseof.html
의 `` 태그 내부에 사용):
{{ .Title }}{{ if gt .Paginator.PageNumber 1 }} - Page {{ .Paginator.PageNumber }}{{ end }}
또는 실제 페이지 마크업에서 다음과 같이 사용할 수 있습니다:
{{ .Title }}{{ if gt .Paginator.PageNumber 1 }} - Page {{ .Paginator.PageNumber }}{{ end }}
참고 사항:
.Paginator
가 사용 가능한 페이징된 목록 페이지(섹션, 택소노미 등)에서만 작동합니다..Paginator.PageNumber
는 현재 페이지 번호를 반환합니다.- 첫 번째 페이지에는
"Page X"
를 추가하지 않고, 두 번째 페이지 이상에서만 추가합니다.
참고 자료:
- Hugo 목록 및 페이징 가이드는
.Paginator.Project
와 동적 헤더 사용을 권장합니다. - 이 기능을 브라우저 탭의
<title>
에 표시하고 싶은 경우, HTML 헤드의 적절한 위치(보통layouts/_default/baseof.html
)에 위의 로직을 배치합니다. 시각적 페이지 제목을 표시하고 싶은 경우, 섹션 제목을 출력하는 위치에 배치합니다.
이 기능에 대한 공식 shortcodes는 존재하지 않습니다. 이는 직접 Hugo 템플릿을 사용하여 레이아웃에 적용하는 패턴입니다.
MainRoad 수정 사항
이 웹사이트는 현재 Mainroad 테마를 사용하고 있습니다. 이 사이트의 블로그 게시물 인덱스 페이지에서 SEO을 개선하기 위해 다음과 같이 제목 생성을 수정했습니다:
<title>{{ block "title" . }}{{ if .IsHome }}{{ .Site.Title }}{{ if and (eq .Kind "home") .Paginator (gt .Paginator.PageNumber 1) }} - Page {{ .Paginator.PageNumber }}{{ end }}{{ else }}{{ .Title }}{{ if and (in (slice "section" "taxonomy" "term") .Kind) .Paginator (gt .Paginator.PageNumber 1) }} - Page {{ .Paginator.PageNumber }}{{ end }} - {{ .Site.Title }}{{ end }}{{ end }}</title>