Cara menambahkan nomor halaman ke judul halaman daftar posting blog di Hugo
Beberapa mesin pencari tidak menyukai ketika sebuah situs web memiliki halaman dengan judul yang sama...
Untuk menambahkan Nomor halaman ke judul halaman daftar blog post di Hugo, Anda perlu memodifikasi template daftar Anda
(umumnya layouts/blog/list.html atau layouts/_default/list.html, terkadang bahkan layouts/_default/baseof.html) untuk mendeteksi apakah Anda berada di halaman yang terbagi. Setelah itu, sesuaikan judul secara dinamis dengan menambahkan nomor halaman ketika diperlukan.
Deskripsi Umum
Ide utama adalah menggunakan Hugo’s objek paginator bawaan dan menampilkan nomor halaman secara kondisional jika lebih besar dari 1. Berikut cara Anda dapat melakukannya:
- Akses paginator:
Gunakan.Paginator
pada halaman daftar Anda untuk bekerja dengan paginasi. - Periksa halaman saat ini:
Gunakan.Paginator.PageNumber
untuk mendapatkan nomor halaman saat ini. - Logika judul kondisional:
- Jika pada halaman 1, tampilkan judul biasa (
{{ .Title }}
). - Jika pada halaman 2 atau lebih tinggi, tambahkan
" - Halaman X"
ke judul Anda.
- Jika pada halaman 1, tampilkan judul biasa (
Contoh kode template Hugo (untuk partial list.html Anda, atau dalam tag `` di baseof.html/layouts Anda):
{{ .Title }}{{ if gt .Paginator.PageNumber 1 }} - Halaman {{ .Paginator.PageNumber }}{{ end }}
Atau, dalam markup halaman aktual Anda:
{{ .Title }}{{ if gt .Paginator.PageNumber 1 }} - Halaman {{ .Paginator.PageNumber }}{{ end }}
Catatan:
- Ini berfungsi pada halaman daftar yang terbagi (bagian, klasifikasi, dll.) karena
.Paginator
tersedia. .Paginator.PageNumber
mengembalikan nomor halaman saat ini.- Hanya tambahkan “Halaman X” untuk halaman berikutnya, bukan untuk halaman pertama.
Referensi:
- Panduan list dan paginasi Hugo menunjukkan bahwa
.Paginator.Project
dan header dinamis adalah cara yang direkomendasikan. - Sesuaikan lokasi berdasarkan apakah Anda ingin ini berada di tab browser (yaitu,
<title>
) atau pada judul halaman.
Jika Anda ingin nomor halaman muncul dalam elemen HTML <title>
untuk SEO, letakkan logika di atas di lokasi yang tepat dalam bagian kepala HTML Anda (sering kali layouts/_default/baseof.html). Untuk judul halaman visual, letakkan di mana pun Anda menghasilkan judul bagian.
Tidak ada shortcode resmi untuk ini - ini adalah pola yang ditetapkan langsung menggunakan Hugo templating di layout Anda.
Modifikasi MainRoad
Situs web ini saat ini menggunakan Mainroad theme. Jadi untuk meningkatkan SEO on-page untuk situs ini, saya telah memperbaiki pembuatan judul pada halaman indeks blog post seperti ini:
<title>{{ block "title" . }}{{ if .IsHome }}{{ .Site.Title }}{{ if and (eq .Kind "home") .Paginator (gt .Paginator.PageNumber 1) }} - Halaman {{ .Paginator.PageNumber }}{{ end }}{{ else }}{{ .Title }}{{ if and (in (slice "section" "taxonomy" "term") .Kind) .Paginator (gt .Paginator.PageNumber 1) }} - Halaman {{ .Paginator.PageNumber }}{{ end }} - {{ .Site.Title }}{{ end }}{{ end }}</title>