15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
23.10.2024

Cara Termudah untuk Mengatur Ulang Halaman di WordPress (Semua Metode Dijelaskan)

Mengurutkan ulang halaman di WordPress mengontrol hierarki struktural situs Anda dan urutan tampilan halaman dalam menu navigasi, respons REST API, dan daftar halaman yang dihasilkan tema. Secara default, WordPress menetapkan setiap halaman nilai menu_order sebesar 0, yang berarti halaman ditampilkan secara alfabetis kecuali Anda secara eksplisit mengganti nilai tersebut — baik melalui Document Settings editor blok, plugin khusus, atau manipulasi database langsung.

Panduan ini mencakup setiap metode praktis untuk mengurutkan ulang halaman WordPress, mulai dari plugin drag-and-drop tercepat hingga pembaruan SQL menu_order mentah, termasuk skenario tepat di mana setiap pendekatan sesuai dan di mana masing-masing gagal secara diam-diam.

Mengapa Urutan Halaman Penting di Luar Navigasi

Sebagian besar tutorial memperlakukan pengurutan ulang halaman sebagai masalah estetika semata. Sebenarnya tidak. Kolom menu_order dalam tabel wp_posts adalah bilangan bulat yang dapat dikueri dan secara langsung memengaruhi:

  • Hasil WP_Query saat orderby=menu_order diteruskan — digunakan oleh banyak template page-builder dan loop tema
  • Pengurutan endpoint REST API (/wp-json/wp/v2/pages?orderby=menu_order&order=asc) yang dikonsumsi oleh pengaturan WordPress headless dan aplikasi mobile
  • Plugin breadcrumb (Yoast SEO, Rank Math) yang menyimpulkan hierarki dari hubungan parent-child dikombinasikan dengan menu_order
  • Pembuatan sitemap — beberapa plugin SEO menggunakan menu_order untuk memprioritaskan urutan crawl halaman dalam sitemap.xml
  • Pohon halaman terprogram yang dirender oleh wp_list_pages() dengan sort_column=menu_order

Memahami hal ini mencegah kesalahan umum: pengembang mengurutkan ulang halaman di editor Menu, mengira masalah sudah selesai, lalu menemukan bahwa loop halaman tema atau sitemap mereka masih mencerminkan urutan alfabetis lama.

Metode 1: Plugin Simple Page Ordering (Direkomendasikan untuk Sebagian Besar Situs)

Simple Page Ordering oleh 10up adalah solusi paling efisien untuk situs dengan hingga beberapa ratus halaman. Plugin ini mencegat tabel daftar admin WordPress standar dan membuat setiap baris dapat diseret, menulis nilai menu_order yang diperbarui kembali ke database melalui AJAX pada setiap peristiwa drop.

Instalasi

  1. Di dasbor WordPress Anda, navigasikan ke Plugins > Add New Plugin.
  2. Cari Simple Page Ordering.
  3. Klik Install Now, lalu Activate.

Mengurutkan Ulang Halaman

  1. Pergi ke Pages > All Pages.
  2. Arahkan kursor ke baris halaman mana pun — gagang seret muncul di sebelah kiri.
  3. Seret baris ke urutan yang diinginkan.
  4. Lepaskan — urutan tersimpan secara otomatis melalui AJAX. Tidak diperlukan tombol "Save".

Apa yang Sebenarnya Dilakukan Plugin Ini di Balik Layar

Setiap tindakan drag-and-drop mengirimkan permintaan POST ke wp-admin/admin-ajax.php dengan aksi simple_page_ordering dan array serial ID post dalam urutan barunya. WordPress kemudian mengiterasi array tersebut dan mengeluarkan kueri UPDATE wp_posts SET menu_order = %d WHERE ID = %d individual. Pada situs besar dengan ratusan halaman, ini dapat menghasilkan lonjakan penulisan database — sesuatu yang perlu dipantau jika Anda berada di lingkungan shared dengan batas kecepatan kueri.

Keterbatasan

  • Plugin ini hanya memengaruhi tipe post yang mendukung page-attributes. Tipe post kustom harus secara eksplisit mendaftarkan 'supports' => ['page-attributes'] di register_post_type().
  • Paginasi dalam tabel daftar admin dapat menyebabkan kebingungan: menyeret halaman ke bagian atas halaman 2 tidak secara otomatis menempatkannya setelah item terakhir di halaman 1. Anda harus meningkatkan jumlah item-per-halaman di "Screen Options" untuk melihat semua halaman dalam satu layar sebelum mengurutkan ulang di seluruh batas yang seharusnya dipaginasi.
  • Plugin ini tidak mengurutkan ulang halaman dalam menu navigasi — hal tersebut dikontrol oleh struktur wp_term_relationships yang terpisah.

Metode 2: Page Attributes — Penugasan menu_order Manual

WordPress mengekspos kolom menu_order secara native di Classic Editor maupun Block Editor. Metode ini tidak memerlukan plugin dan merupakan pilihan tepat saat Anda perlu menetapkan pengurutan numerik yang presisi untuk sejumlah kecil halaman atau saat Anda membuat skrip pembaruan massal secara terprogram.

Block Editor (Gutenberg)

  1. Buka halaman yang ingin Anda urutkan ulang.
  2. Di sidebar kanan, klik tab Page (bukan Block).
  3. Gulir ke bawah ke Page Attributes.
  4. Temukan kolom Order dan masukkan bilangan bulat.
  5. Klik Update atau Save.

Classic Editor

  1. Buka editor halaman.
  2. Di sidebar kanan, temukan meta box Page Attributes.
  3. Masukkan nilai di kolom Order.
  4. Klik Update.

Logika Pengurutan

Halaman dengan nilai menu_order lebih rendah muncul lebih dulu. Halaman yang berbagi nilai yang sama kembali ke pengurutan alfabetis berdasarkan judul. Konvensi praktis:

Judul HalamanPosisi yang DiinginkanNilai `menu_order`
Homeke-11
About Uske-22
Serviceske-33
Portfolioke-44
Contactke-55

Beri jarak antar nilai (misalnya, 10, 20, 30) jika Anda mengantisipasi penyisipan halaman di antara halaman yang sudah ada nanti — ini menghindari keharusan menomori ulang setiap halaman setiap kali Anda menambahkan satu halaman baru.

Pembaruan Massal Terprogram melalui WP-CLI

Untuk situs yang bermigrasi dari CMS lain atau merestrukturisasi lusinan halaman sekaligus, mengedit setiap halaman secara manual tidak praktis. Gunakan WP-CLI:

wp post update 42 --menu_order=1
wp post update 57 --menu_order=2
wp post update 61 --menu_order=3

Atau lakukan loop melalui array menggunakan skrip shell:

declare -A pages=([42]=1 [57]=2 [61]=3 [78]=4)
for post_id in "${!pages[@]}"; do
  wp post update "$post_id" --menu_order="${pages[$post_id]}"
done

Pembaruan Database Langsung (Lanjutan)

Jika WP-CLI tidak tersedia dan Anda perlu memperbarui nilai menu_order secara massal, Anda dapat menjalankan SQL secara langsung. Selalu buat cadangan terlebih dahulu.

UPDATE wp_posts SET menu_order = 1 WHERE ID = 42 AND post_type = 'page';
UPDATE wp_posts SET menu_order = 2 WHERE ID = 57 AND post_type = 'page';
UPDATE wp_posts SET menu_order = 3 WHERE ID = 61 AND post_type = 'page';

Ini sangat berguna saat mengelola WordPress di lingkungan VPS Hosting di mana Anda memiliki akses MySQL langsung dan perlu menerapkan perubahan struktural di beberapa situs dalam satu jendela pemeliharaan.

Metode 3: Editor Menu WordPress — Mengurutkan Ulang Tampilan Navigasi

Editor Appearance > Menus mengontrol urutan tampilan halaman dalam menu navigasi situs Anda — ini sepenuhnya terpisah dari menu_order di wp_posts. Perubahan di sini tidak memengaruhi hasil WP_Query, respons REST API, atau output wp_list_pages().

Gunakan metode ini saat:

  • Tema Anda merender navigasi dari lokasi menu yang terdaftar (hampir semua tema modern melakukan ini)
  • Anda menginginkan urutan halaman di bilah navigasi yang berbeda dari menu_order struktural yang digunakan dalam daftar halaman
  • Anda perlu menyarangkan halaman sebagai sub-item (dropdown) tanpa mengubah parent WordPress aktual mereka

Langkah-langkah

  1. Navigasikan ke Appearance > Menus.
  2. Pilih menu yang sudah ada dari dropdown atau klik Create a new menu.
  3. Di panel Pages di sebelah kiri, centang halaman yang ingin Anda sertakan dan klik Add to Menu.
  4. Di panel Menu Structure, seret item ke urutan yang diinginkan.
  5. Untuk membuat sub-item (child dropdown), seret item menu sedikit ke kanan di bawah parent yang dimaksud.
  6. Klik Save Menu.

Perbedaan Kritis: Urutan Menu vs. Urutan Halaman

Di sinilah banyak administrator WordPress menimbulkan bug yang tidak kentara. Pertimbangkan skenario ini: tema Anda menggunakan wp_list_pages() di sidebar untuk menampilkan indeks halaman. Anda mengurutkan ulang halaman di Appearance > Menus, tetapi daftar sidebar tetap tidak berubah. Itu adalah perilaku yang diharapkan — wp_list_pages() membaca menu_order dari wp_posts, bukan dari struktur menu. Untuk memperbaiki sidebar, Anda harus menggunakan Metode 1 atau Metode 2.

Metode 4: Full Site Editor (Tema Blok) — Navigation Block

Situs yang menjalankan tema blok (Twenty Twenty-Three, Kadence, varian blok GeneratePress) menggunakan Full Site Editor daripada Appearance > Menus. Navigation block dalam FSE memiliki antarmuka drag-and-drop tersendiri.

  1. Pergi ke Appearance > Editor.
  2. Klik pada blok Navigation di template header.
  3. Gunakan panel List View (ikon tiga garis di toolbar atas) untuk melihat semua item navigasi.
  4. Seret item dalam List View untuk mengurutkan ulang.
  5. Klik Save.

Model data yang mendasarinya identik dengan sistem Menu klasik — WordPress menyimpan menu navigasi FSE sebagai post wp_navigation — tetapi antarmuka pengeditannya sepenuhnya berbeda.

Metode 5: Pengurutan Ulang Terprogram dengan pre_get_posts

Bagi pengembang yang membangun tema atau plugin kustom, cara paling bersih untuk menerapkan urutan halaman tanpa bergantung pada nilai menu_order dalam database adalah dengan mengaitkan ke pre_get_posts dan mengganti argumen kueri sebelum eksekusi.

add_action( 'pre_get_posts', function( WP_Query $query ) {
    if ( ! is_admin() && $query->is_main_query() && $query->is_post_type_archive( 'page' ) ) {
        $query->set( 'orderby', 'menu_order' );
        $query->set( 'order', 'ASC' );
    }
});

Tambahkan ini ke functions.php tema Anda atau plugin khusus situs. Ini memastikan bahwa template apa pun yang menggunakan loop kueri utama menghormati menu_order tanpa memerlukan pengeditan file template.

Perbandingan: Semua Metode Sekilas

MetodeMemengaruhi `menu_order` di DBMemengaruhi Tampilan Menu NavMemerlukan PluginTerbaik Untuk
Plugin Simple Page OrderingYaTidakYaSitus dengan banyak halaman, editor non-teknis
Page Attributes (kolom Order)YaTidakTidakSitus kecil, kontrol numerik presisi
Pembaruan massal WP-CLIYaTidakTidakPengembang, migrasi, operasi massal
Pembaruan SQL langsungYaTidakTidakAdmin lanjutan dengan akses DB
Appearance > MenusTidakYaTidakTampilan navigasi saja
Navigation block Full Site EditorTidakYaTidakTema blok
Hook pre_get_postsTidakTidakTidakPengembang yang mengganti perilaku kueri

Jebakan Umum dan Kasus Tepi

Drag-and-drop batas paginasi: Seperti disebutkan di atas, Simple Page Ordering tidak dapat memindahkan halaman dari halaman 2 daftar admin ke posisi di halaman 1 dalam satu seret. Tingkatkan jumlah per-halaman di Screen Options sebelum mengurutkan ulang.

Halaman child mewarisi konteks parent: Saat menggunakan Page Attributes, menu_order dibatasi pada halaman saudara di bawah parent yang sama. Halaman child dengan menu_order=1 akan muncul pertama di antara saudaranya, tetapi posisinya relatif terhadap halaman di bawah parent yang berbeda tidak relevan.

Invalidasi lapisan caching: Setelah memperbarui menu_order secara massal melalui SQL atau WP-CLI, entri object cache untuk kueri halaman mungkin masih mencerminkan urutan lama. Pada situs yang menggunakan object caching Redis atau Memcached, flush cache secara eksplisit:

wp cache flush

Pada situs yang menjalankan full-page cache (WP Rocket, LiteSpeed Cache, Nginx FastCGI cache), bersihkan juga page cache, jika tidak pengunjung akan melihat navigasi usang selama durasi TTL cache.

Konsumen REST API: Jika frontend terpisah (Next.js, Nuxt, React) mengambil halaman dari REST API WordPress, ia harus secara eksplisit meminta orderby=menu_order — pengurutan default REST API untuk halaman adalah berdasarkan tanggal menurun. Perbarui panggilan API Anda sesuai:

GET /wp-json/wp/v2/pages?orderby=menu_order&order=asc&per_page=100

Instalasi Multisite: Pada WordPress Multisite, menu_order bersifat per-situs. Menjalankan perintah WP-CLI di seluruh jaringan memerlukan penentuan --url= untuk setiap subsitus atau menggunakan --network dengan loop kustom.

Pertimbangan Lingkungan Hosting

Metode yang Anda pilih dapat bergantung pada pengaturan hosting Anda. Pada paket Shared Web Hosting terkelola, akses database langsung mungkin dibatasi ke phpMyAdmin, membuat pembaruan WP-CLI atau SQL mentah kurang nyaman — metode plugin atau Page Attributes lebih praktis. Pada VPS dengan cPanel, Anda biasanya memiliki akses terminal penuh, menjadikan WP-CLI opsi tercepat untuk operasi massal. Pada Dedicated Server tanpa batasan dengan akses root, kueri MySQL langsung dan skrip WP-CLI dapat diintegrasikan ke dalam pipeline deployment atau cron job pemeliharaan.

Jika Anda mengelola beberapa instalasi WordPress dan membutuhkan pengurutan halaman yang konsisten di seluruh lingkungan, mengkodekan penugasan menu_order dalam skrip WP-CLI dan menjalankannya sebagai bagian dari proses deployment Anda adalah pendekatan paling andal — ini menghilangkan langkah manual dan dapat dikontrol versinya.

Untuk situs yang mengandalkan kehadiran email profesional bersama pengaturan WordPress mereka, memasangkan hosting Anda dengan layanan Email Hosting khusus memastikan halaman kontak dan dukungan Anda — yang sering perlu diurutkan secara menonjol — didukung oleh infrastruktur komunikasi yang sama andalnya.

Daftar Periksa Poin Teknis Utama

Sebelum memilih metode pengurutan ulang, verifikasi hal-hal berikut:

  • Identifikasi apa yang sebenarnya Anda urutkan ulang. Urutan menu navigasi dan menu_order di wp_posts bersifat independen. Konfirmasi mana yang dibaca oleh tema Anda.
  • Periksa loop halaman tema Anda. Apakah menggunakan wp_list_pages(), WP_Query kustom, atau lokasi menu terdaftar? Masing-masing membaca dari sumber data yang berbeda.
  • Gunakan Simple Page Ordering untuk alur kerja editorial di mana pengguna non-teknis perlu mengurutkan ulang halaman secara rutin tanpa keterlibatan pengembang.
  • Gunakan Page Attributes atau WP-CLI untuk presisi saat Anda membutuhkan nilai numerik tertentu atau sedang membuat skrip migrasi.
  • Jangan pernah menggunakan Appearance > Menus saja jika tujuan Anda adalah memengaruhi daftar halaman berbasis WP_Query, sitemap, atau konsumen REST API.
  • Flush object cache dan page cache setelah pembaruan menu_order massal apa pun untuk memastikan semua lapisan segera mencerminkan urutan baru.
  • Beri jarak dalam penomoran menu_order (10, 20, 30 daripada 1, 2, 3) untuk mengakomodasi penyisipan di masa mendatang tanpa penomoran ulang penuh.
  • Untuk pengaturan WordPress headless, selalu teruskan orderby=menu_order&order=asc secara eksplisit dalam permintaan REST API — jangan asumsikan pengurutan default.

Pertanyaan yang Sering Diajukan

Apakah mengubah urutan halaman di Appearance > Menus memengaruhi SEO?

Tidak. Urutan menu navigasi tidak memiliki efek langsung pada menu_order di wp_posts, prioritas sitemap, atau urutan crawl. Namun, jika tema Anda menghasilkan breadcrumb atau indeks halaman dari wp_list_pages(), hal tersebut didorong oleh menu_order dalam database — perbarui itu secara terpisah menggunakan Metode 1 atau Metode 2.

Mengapa urutan halaman saya direset setelah memperbarui halaman?

Ini biasanya terjadi ketika plugin atau hook tema menjalankan wp_update_post() saat penyimpanan dan meneruskan menu_order=0 secara eksplisit. Audit plugin aktif Anda dengan hook add_action('save_post', ...) dan periksa apakah ada yang menimpa kolom menu_order. Plugin Simple Page Ordering tidak melindungi dari hal ini — Anda perlu mengidentifikasi dan memperbaiki hook yang berkonflik.

Bisakah saya mengurutkan ulang halaman tanpa plugin di Block Editor?

Ya. Buka halaman mana pun, pergi ke tab Page di sidebar kanan, perluas Page Attributes, dan atur kolom bilangan bulat Order. Ini menulis langsung ke menu_order di wp_posts. Tidak diperlukan plugin.

Apakah Simple Page Ordering bekerja dengan tipe post kustom?

Hanya jika tipe post kustom didaftarkan dengan 'supports' => ['page-attributes']. Jika Anda mengontrol registrasi tipe post, tambahkan string dukungan tersebut. Jika itu adalah tipe post pihak ketiga, Anda dapat menambahkan dukungan secara terprogram di functions.php:

add_post_type_support( 'your_post_type_slug', 'page-attributes' );

Berapa nilai maksimum untuk menu_order?

Kolom menu_order di wp_posts adalah bilangan bulat 32-bit bertanda (INT(11)), sehingga nilai maksimumnya adalah 2,147,483,647. Dalam praktiknya, gunakan nilai dalam ratusan saja — nilai yang sangat besar dapat menyebabkan perilaku tak terduga dalam beberapa fungsi tema yang melakukan aritmatika pada menu_order untuk kalkulasi offset visual.

15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai