Terkadang kita membutuhkan nilai POST atau GET yang dikirimkan melalui halaman WordPress untuk melakukan query. Seperti contohnya ingin membuat indeks berita per tanggal pada halaman WordPress, tentu membutuhkan sebuah form yang bertugas mengirimkan nilai POST atau GET.
Namun, pada WordPress, kita tidak bisa secara langsung mendapatkan nilai POST atau GET yang dikirimkan form menggunakan predefined variable PHP yang biasa digunakan, yaitu $_POST atau $_GET. Alasan singkatnya karena design pattern WordPress tidak memungkinkan untuk melakukan hal itu. Lebih jelasnya dapat melihat gambar diatas mengenai template structure pada WordPress, yang menjelaskan bahwa functions.php pada setiap template WordPress berperan sebagai “penghubung” untuk menyediakan data kepada template.
Jika kita mencoba langsung dengan menggunakan predefined variable PHP tanpa mengetahui design pattern-nya terlebih dahulu, kita akan diarahkan kehalaman 404 Page Not Found.
Salah satu solusinya, kita harus mendaftarkan terlebih dahulu parameter-parameter yang akan dikirimkan pada functions.php, lalu menambahkannya pada file tersebut.
Menambahkan Parameter pada function.php dengan query_vars
Pada folder theme WordPress, buka file functions.php, lalu tambahkan function baru, pada baris paling bawah seperti ini:
<?php // end of some functions in your functions.php function add_query_vars($add_vars) { $add_vars[] = "idx_year"; $add_vars[] = "idx_month"; $add_vars[] = "idx_date"; $add_vars[] = "idx_submit"; return $add_vars; } add_filter('query_vars', 'add_query_vars'); ?>
Pada sumber kode di atas terdapat contoh nama parameter-parameter yang akan dipanggil, yaitu “idx_year”, “idx_month”, “idx_date”, “idx_submit”. Ada 4 parameter yang ditambahkan. Untuk penamaaan paramater diusahakan tidak menggunakan nama yang umum agar tidak menghadapi kendala, seperti diatas saya menambahkan prefix “idx_” pada setiap parameter.
Mendapatkan Nilai POST & GET Menggunakan query_vars
Pastikan penamaan parameter sudah benar, sesuai yang terdaftar pada functions.php. Setelah itu, kita bisa mencoba mengirimkan nilai atau data menggunakan method POST atau GET pada halaman (page) WordPress.
Untuk menangkap nilai-nilai yang telah di-passing, tentu kita tidak akan menggunakan predefined variable lagi, karena sudah diserahkan kepada query_vars. Sehingga kita memanggilnya dengan cara berikut:
<?php $year = $wp_query->query_vars['idx_year']; $month = $wp_query->query_vars['idx_month']; $date = $wp_query->query_vars['idx_date']; $submit = $wp_query->query_vars['idx_submit']; // do query here using assigned variables ?>
Jika ingin memeriksa apakah nilai parameter sudah didapatkan atau belum, kita bisa melakukan “echo” terhadap nilai-nilai query_vars tersebut.
<?php echo $wp_query->query_vars['parameter_name']; ?>
Note: Pemanggilan parameter menggunakan query_vars, dapat mendukung method $_POST dan $_GET sekaligus.
Saya mau tanya kalau saya bikin pendaftaran anggota UKM di WordPress tapi saya ingin mengisi Npm atau nomor mahasiswa nya saja lalu data seperti nama dan field yg lain di get dari tabel yg dibuat caranya bagaimana ya tolong pencerahan nya terimakasih banyak
Terima kasih Pak Informasinya. 😊
terimakasih pak sangat berguna apalagi para pemula.