Indeks Pencarian
Struktur berkas JSON yang dipakai pencarian instan, dan cara memanfaatkannya sendiri.
Di halaman ini
Indeks ditulis sebagai berkas statis agar dilayani langsung oleh server web:
https://situs.id/wp-content/uploads/gitdocs/search-index.json?v=8f3a1c9e2b40Parameter v adalah sidik jari isi berkas β URL berubah setiap indeks diperbarui, sehingga aman disimpan di cache selamanya.
Bila folder uploads tidak dapat ditulisi, data yang sama disajikan melalui:
GET https://situs.id/wp-json/gitdocs/v1/search-indexEndpoint ini publik dan hanya memuat halaman yang sudah diterbitkan.
{
"generated": 1758300000,
"spaces": {
"panduan": { "n": "Panduan", "u": "/docs/panduan/", "i": "π" }
},
"records": [
{
"id": 22,
"s": "panduan",
"t": "Instalasi",
"p": "Memulai",
"u": "/docs/panduan/memulai/instalasi/",
"d": "Persyaratan server dan cara memasang tema.",
"c": "GitDocs tidak membutuhkan plugin page builderβ¦",
"i": "π¦"
},
{
"id": 22,
"s": "panduan",
"t": "Instalasi",
"h": "Persyaratan",
"a": "persyaratan",
"p": "Memulai",
"u": "/docs/panduan/memulai/instalasi/#persyaratan",
"c": "WordPress 6.5, PHP 8.0, permalink selain polosβ¦"
}
]
}| Kunci | Arti |
|---|---|
id |
Id halaman (dipakai untuk mengelompokkan hasil) |
s |
Slug space |
t |
Judul halaman |
h |
Judul bagian (hanya pada rekaman bagian) |
a |
Anchor bagian |
p |
Jalur remah roti (Induk βΊ Anak) |
u |
URL relatif |
d |
Deskripsi halaman |
c |
Isi teks (dipotong) |
i |
Ikon halaman |
Setiap halaman menghasilkan satu rekaman halaman plus satu rekaman per judul H2/H3, sehingga hasil pencarian dapat melompat langsung ke bagian yang relevan.
Nama kunci sengaja dipendekkan satu huruf. Pada dokumentasi berisi ratusan halaman, penghematan ini cukup berarti karena berkas diunduh utuh oleh peramban.
const response = await fetch( '/wp-content/uploads/gitdocs/search-index.json' );
const { records } = await response.json();
const hits = records.filter( ( record ) =>
`${ record.t } ${ record.h || '' } ${ record.c || '' }`
.toLowerCase()
.includes( 'instalasi' )
);Tema sendiri memakai Fuse.js dengan token search β lihat Pencarian & Navigasi di space Panduan.
wp gitdocs reindexIndeks juga dibangun ulang otomatis setiap kali halaman disimpan, dipindahkan, dihapus, atau space diubah.
<?php
/**
* Mengeluarkan space "internal" dari indeks publik.
*/
add_filter( 'gitdocs_search_index_records', function ( array $records ): array {
return array_values(
array_filter( $records, static fn( array $record ): bool => 'internal' !== $record['s'] )
);
} );Indeks bersifat publik. Jangan menaruh dokumentasi rahasia di halaman yang diterbitkan β pakai status draf, kata sandi halaman, atau space yang Anda saring seperti contoh di atas.