Plus UI WP siap digunakan. Pelajari dokumentasi, komponen, kustomisasi, dan optimasinya melalui artikel demo Bahasa Indonesia. Dokumentasi

Pengaturan Paginasi, Pinned Post, dan Popular Posts

admin

Paginasi menentukan bagaimana artikel dibagi ke beberapa halaman. Pada Plus UI WP, homepage menampilkan carousel, pinned post, latest posts, dan sidebar sehingga query harus dijaga agar tidak menghasilkan duplikasi atau layout terlalu berat.

Jumlah artikel per halaman

Buka Settings → Reading → Blog pages show at most. Nilai 6–10 biasanya nyaman untuk layout grid.

Pagination WordPress

Gunakan fungsi native agar URL pagination, accessibility, dan integrasi plugin tetap benar.

the_posts_pagination(array(
    'mid_size'  => 1,
    'prev_text' => __('Sebelumnya', 'plus-ui-wp'),
    'next_text' => __('Berikutnya', 'plus-ui-wp'),
));

Pinned Post

Pinned Post adalah artikel yang ditampilkan lebih menonjol di homepage. Pada Plus UI WP, artikel ini dipilih melalui Customizer sehingga tidak harus sama dengan WordPress Sticky Post.

Mengambil pinned post

$pinned_id = (int) get_theme_mod('pui_pinned_post', 0);

if ($pinned_id) {
    $pinned = new WP_Query(array(
        'p' => $pinned_id,
        'post_type' => 'post',
    ));
}

Mencegah duplikasi

Jika pinned post juga masuk Latest Posts, tambahkan ID ke post__not_in.

$latest = new WP_Query(array(
    'posts_per_page' => 6,
    'post__not_in'   => array($pinned_id),
    'ignore_sticky_posts' => true,
));

Popular Posts

WordPress Core tidak menyimpan view count artikel. Theme dapat menggunakan pendekatan sederhana seperti komentar terbaru/populer atau plugin analytics/view counter.

Pilih sumber data yang jelasPopular Posts berbasis view membutuhkan pencatatan view. Jangan mengklaim angka popularitas bila theme belum menyimpan statistik tersebut.

Berdasarkan jumlah komentar

$popular = new WP_Query(array(
    'posts_per_page' => 5,
    'orderby'        => 'comment_count',
    'order'          => 'DESC',
));

Sticky Post WordPress

Sticky Post adalah fitur WordPress Core. Anda dapat menggunakannya untuk arsip/blog standar, tetapi homepage Plus UI memiliki pinned area sendiri sehingga keduanya tidak harus disatukan.

Offset dan pagination

Hati-hati memakai offsetoffset pada WP_Query dapat membuat pagination tidak akurat. Untuk mengeluarkan artikel tertentu, lebih baik gunakan post__not_in.

Query kategori

$docs = new WP_Query(array(
    'category_name'  => 'dokumentasi',
    'posts_per_page' => 6,
    'paged'          => max(1, get_query_var('paged')),
));

Infinite scroll?

Infinite scroll dapat terlihat modern tetapi menambah kompleksitas aksesibilitas, history URL, dan analytics. Pagination biasa lebih stabil untuk dokumentasi. Jika memakai load more, tetap sediakan URL halaman yang dapat diakses crawler dan keyboard.

Menjaga layout stabil

  • Semua thumbnail pada kartu sebaiknya memiliki aspect ratio konsisten.
  • Excerpt dibatasi panjangnya.
  • Judul panjang harus dapat membungkus tanpa keluar card.
  • Grid tidak boleh memakai fixed width yang melebihi container.
  • Gunakan CSS grid/flex yang responsif.

Rekomendasi homepage

Bagian Jumlah
Carousel 4–6 artikel
Pinned 1 artikel
Latest 6–9 artikel per halaman
Popular 5 artikel
Hasil yang diharapkanHomepage tetap cepat, tidak menduplikasi pinned post secara berlebihan, dan pagination tetap berfungsi dengan URL WordPress yang valid.

Pagination pada arsip kategori

Category, tag, author, dan search dapat memakai pagination yang sama. Jangan membuat query baru tanpa memindahkan nilai paged, karena halaman kedua akan terus menampilkan konten halaman pertama.

$paged = max(1, get_query_var('paged'));
$query = new WP_Query(array(
    'posts_per_page' => 9,
    'paged'          => $paged,
));

Canonical dan halaman 2+

Jangan canonical-kan semua halaman pagination ke halaman pertama secara paksa. Mesin pencari perlu memahami halaman lanjutan sebagai URL berbeda yang menampung artikel berbeda. Plugin SEO modern biasanya menangani bagian ini.

Previous/Next pada artikel

Navigasi artikel tunggal berbeda dari pagination arsip. Untuk blog kronologis, Anda dapat menambahkan previous/next post link di bawah konten tanpa memengaruhi daftar halaman.

the_post_navigation(array(
    'prev_text' => '← %title',
    'next_text' => '%title →',
));

Carousel dan duplikasi

Carousel biasanya mengambil artikel terbaru atau kategori tertentu. Jika artikel yang sama juga muncul sebagai pinned dan latest, halaman dapat terlihat repetitif. Simpan daftar ID yang sudah dipakai lalu exclude dari query berikutnya bila desain mengharuskannya.

Query performa

Untuk widget kecil yang hanya membutuhkan ID, gunakan fields => ids. Untuk query yang tidak membutuhkan pagination, no_found_rows => true dapat mengurangi pekerjaan database.

$ids = get_posts(array(
    'posts_per_page' => 5,
    'fields'         => 'ids',
    'no_found_rows'  => true,
));

Popular Posts dan cache

Jika popular posts dihitung dari view counter, cache hasil ranking beberapa menit/jam agar homepage tidak melakukan query agregasi berat pada setiap request.

Mobile pagination

Pada layar kecil, tombol halaman sebaiknya tidak menampilkan terlalu banyak nomor. Gunakan prev/next dan beberapa nomor di sekitar halaman aktif.

Empty state

Arsip tanpa artikel harus tetap memiliki pesan yang jelas dan link kembali, bukan area kosong.

if (!$query->have_posts()) {
    echo '<p>Belum ada artikel pada bagian ini.</p>';
}

Troubleshooting pagination

Halaman 2 menghasilkan 404

Simpan ulang Settings → Permalinks untuk flush rewrite rules, lalu periksa apakah custom query menggunakan paged.

Konten halaman 1 muncul lagi

Query kemungkinan tidak menerima nilai paged atau menggunakan offset yang salah.

Artikel pinned selalu muncul di setiap halaman

Exclude ID pinned dari query latest atau tampilkan pinned hanya ketika paged sama dengan 1.

Facebook X Email
admin

Author of this article.

Leave a Reply

Your email address will not be published. Required fields are marked *