Dalam pengembangan website berbasis WordPress, sering kali kita membutuhkan pengaturan khusus setelah user berhasil login. Salah satu kebutuhan yang umum adalah mengarahkan user ke halaman tertentu berdasarkan role mereka, seperti author atau administrator.
Pada tutorial ini, kamu akan belajar cara membuat redirect login WordPress menggunakan logika if-else di file functions.php.
Kenapa Perlu Redirect Berdasarkan Role
Secara default, WordPress akan mengarahkan user ke dashboard yang sama setelah login. Namun dalam beberapa kasus, kamu mungkin ingin:
- Author diarahkan ke halaman khusus penulis
- Administrator tetap ke halaman wp-admin
- User biasa diarahkan ke homepage
Dengan cara ini, pengalaman pengguna akan lebih terarah dan profesional.
Membuat Fungsi Redirect Login WordPress
Kamu bisa menambahkan kode berikut ke dalam file functions.php pada tema aktif:
function custom_login_redirect() {
$username = $_POST['log'];
$user = get_user_by('login', $username);
if ( is_a( $user, 'WP_User' ) ) {
if ( in_array( 'author', $user->roles ) ) {
return home_url('/author-dashboard/');
} elseif ( in_array( 'administrator', $user->roles ) ) {
return home_url('/wp-admin/');
} else {
return home_url();
}
}
}
add_filter( 'login_redirect', 'custom_login_redirect' );
Penjelasan Kode
Berikut penjelasan dari setiap bagian kode di atas:
- $_POST[‘log’] digunakan untuk mengambil username dari form login
- get_user_by digunakan untuk mengambil data user berdasarkan username
- is_a memastikan bahwa data yang diambil adalah user WordPress
- in_array digunakan untuk mengecek role user
- home_url menentukan halaman tujuan redirect
Dengan logika ini, setiap user akan diarahkan sesuai dengan perannya.
Cara Kerja Redirect
Alur kerjanya seperti ini:
- User login ke WordPress
- Sistem membaca username
- Sistem mengecek role user
- User diarahkan ke halaman sesuai role
Tips Pengembangan Lanjutan
Agar lebih aman dan fleksibel, kamu bisa mengembangkan fitur ini dengan:
- Menambahkan validasi jika $_POST kosong
- Menggunakan parameter tambahan dari WordPress hook
- Menambahkan role lain seperti editor atau subscriber
- Membuat halaman dashboard custom
Contoh pengembangan tambahan:
elseif ( in_array( 'editor', $user->roles ) ) {
return home_url('/editor-dashboard/');
}
Kesimpulan
Mengatur redirect login berdasarkan role di WordPress adalah langkah penting untuk meningkatkan pengalaman pengguna dan pengelolaan website.
Dengan menambahkan sedikit kode di functions.php, kamu sudah bisa membuat sistem login yang lebih profesional dan terstruktur.
Jika kamu mengelola website dengan banyak user seperti portal berita atau blog multi-author, fitur ini sangat direkomendasikan.
Kalau kamu mau, nanti kita bisa lanjut bikin versi yang lebih advanced seperti redirect berdasarkan custom role atau integrasi dengan sistem membership.