Cara Membuat Redirect Login WordPress Berdasarkan Role

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.

Tinggalkan Balasan