Dalam pengembangan website berbasis WordPress, terkadang kita membutuhkan pengaturan khusus setelah pengguna berhasil login.
Salah satu kebutuhan yang cukup sering digunakan adalah mengarahkan user ke halaman tertentu berdasarkan role mereka, seperti administrator, author, editor, maupun subscriber.
Secara default, WordPress akan mengarahkan seluruh user ke halaman dashboard yang sama. Namun dengan sedikit modifikasi pada file functions.php, proses login bisa dibuat lebih fleksibel dan terstruktur.
Kenapa Redirect Berdasarkan Role Dibutuhkan?
Pengaturan redirect login biasanya digunakan untuk meningkatkan pengalaman pengguna dan mempermudah pengelolaan website.
Contohnya:
- author diarahkan ke halaman dashboard penulis,
- administrator tetap masuk ke wp-admin,
- user biasa diarahkan ke homepage atau halaman member.
Cara ini sering digunakan pada:
- portal berita,
- website multi author,
- sistem membership,
- hingga website komunitas.
Kode Redirect Login WordPress
Tambahkan kode berikut ke file functions.php pada tema aktif WordPress:
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 Fungsi Kode
Berikut fungsi dari masing-masing bagian kode tersebut:
Mengambil Username Login
$_POST['log']
Kode ini digunakan untuk membaca username dari form login WordPress.
Mengambil Data User
get_user_by('login', $username);
Fungsi ini digunakan untuk mengambil data user berdasarkan username yang dimasukkan.
Memastikan Data Adalah User WordPress
is_a( $user, 'WP_User' )
Bagian ini memastikan bahwa data yang ditemukan memang user WordPress yang valid.
Mengecek Role User
in_array( 'author', $user->roles )
Digunakan untuk memeriksa apakah user memiliki role tertentu.
Menentukan Halaman Redirect
home_url('/author-dashboard/')
Berfungsi menentukan tujuan redirect setelah login berhasil.
Alur Kerja Redirect Login
Berikut proses kerjanya:
- User login ke WordPress
- Sistem membaca username
- WordPress mengecek role user
- User diarahkan ke halaman sesuai role
Menambahkan Redirect untuk Role Lain
Kamu juga bisa menambahkan role tambahan seperti editor atau subscriber.
Contohnya:
elseif ( in_array( 'editor', $user->roles ) ) {
return home_url('/editor-dashboard/');
}
Dengan cara ini, setiap role dapat memiliki dashboard atau halaman khusus masing-masing.
Tips Pengembangan yang Lebih Aman
Agar fitur redirect lebih aman dan fleksibel, beberapa hal berikut bisa ditambahkan:
- validasi jika
$_POSTkosong, - menggunakan parameter bawaan hook WordPress,
- membuat custom dashboard,
- mengatur redirect berdasarkan membership atau custom role.
Kesimpulan
Membuat redirect login berdasarkan role di WordPress cukup mudah dilakukan melalui file functions.php.
Dengan pengaturan ini, pengalaman pengguna menjadi lebih rapi dan profesional, terutama untuk website dengan banyak user seperti portal berita atau website multi-author.
Selain mempermudah navigasi, sistem redirect juga membantu membatasi akses user sesuai kebutuhan website.

