Cara Mengarahkan Pengguna Jika Tidak Masuk di WordPress »Pengalihan Halaman

Diterbitkan: 2022-01-02

Cara Redirect Jika Tidak Masuk Di WordPress Di posting terakhir, saya menunjukkan cara memeriksa apakah pengguna login di WordPress. Salah satu alasan umum mengapa Anda mungkin ingin memeriksa apakah pengguna WordPress masuk adalah untuk menampilkan halaman yang berbeda berdasarkan status masuk pengguna WordPress. Jika Anda ingin mengarahkan pengguna jika tidak login di WordPress, Anda dapat melakukannya dengan menambahkan potongan kode di file functions.php Anda seperti yang akan Anda lihat di tutorial singkat ini.

Mengapa mengarahkan pengguna di WordPress?

Mengarahkan pengguna adalah persyaratan penting untuk sebagian besar situs WordPress. Ada waktu yang berbeda Anda mungkin ingin mengarahkan pengguna dari satu halaman ke halaman lain. Misalnya, Anda dapat mengarahkan ulang pengguna WooCommerce setelah checkout, atau Anda dapat mengarahkan ulang pengguna setelah pendaftaran atau pengalihan masuk ke situs web.

Untuk mengarahkan ulang jika tidak masuk ke WordPress adalah salah satu pengalihan yang paling umum. Meskipun ada plugin yang dapat membantu mengelola pengalihan di WordPress tetapi menambahkan cuplikan kecil yang memecahkan masalah ini adalah solusi yang lebih baik daripada mengandalkan plugin pihak ketiga.

Dalam tutorial ini, saya akan menunjukkan cara menambahkan cuplikan di tema atau plugin Anda yang membuat pengalihan untuk pengguna yang tidak masuk ke halaman pilihan Anda.

Langkah-langkah untuk Redirect jika Tidak Masuk di WordPress

Untuk menerapkan redirect jika tidak login di WordPress, Anda harus mengikuti langkah-langkah berikut:

  1. Masuk ke situs WordPress Anda dan navigasikan ke editor tema di bawah menu tampilan pada menu dasbor utama.
  2. Buka file functions.php dari tema WordPress yang aktif. Anda juga dapat menggunakan CPanel atau FTP untuk mengakses file functions.php tema aktif. Terletak di jalan ini - wp-root-installation/wp-content/themes/active-theme/functions.php
  3. Buat kait tindakan yang mengaitkan kait inisialisasi adminadmin_init , misalnya add_action('init', 'redirect_if_not_logged_in') . Hook ini memiliki fungsi callback yang akan memiliki logika untuk memeriksa apakah pengguna login di WordPress dan jika tidak login mereka akan diarahkan ke halaman yang kita inginkan.
  4. Buat fungsi panggilan balik seperti yang telah kami sebutkan di atas dan tambahkan kode yang sesuai.
  5. Simpan perubahan dan buka frontend untuk menguji apakah pengguna yang tidak masuk dialihkan ke halaman yang Anda tambahkan dalam kode.

Mari kita tunjukkan bagaimana Anda dapat menambahkan redirect jika pengguna tidak login di WordPress. Saya akan menggunakan tema WordPress default pada instalasi localhost tetapi ini dapat bekerja untuk semua situs lain, terlepas dari tema dan lingkungan hosting.

Kode untuk menambahkan pengalihan juga dapat mengambil kondisi lain seperti dalam kebanyakan kasus ketika Anda ingin membatasi konten dari pengguna yang tidak masuk log, Anda akan memeriksa dua kondisi:

  • Jika pengguna login
  • Jika pengguna berada di halaman tempat Anda memiliki konten yang dibatasi

Ketika kondisi ini terpenuhi, Anda harus menggunakan fungsi wp_redirect() untuk mengarahkan pengguna ke halaman pilihan Anda.

Fungsi WP: wp_redirect()

Ini adalah fungsi pengalihan WordPress yang dapat digunakan dalam tema dan plugin untuk mengarahkan pengguna. Ekspresi umum dari fungsi ini adalah sebagai berikut:

wp_redirect( string $location, int $status = 302, string $x_redirect_by = 'WordPress' )

Seperti yang Anda lihat, fungsi tersebut memiliki tiga parameter yaitu sebagai berikut:

Parameter Keterangan
$location Ini adalah URL tempat Anda ingin mengarahkan pengguna. Saat Anda menggunakan fungsi ini saat pengguna tidak masuk, Anda perlu memberikan URL ke halaman yang akan kami alihkan pengguna seperti yang akan Anda lihat dalam contoh kode
$status Ini adalah parameter opsional dan Anda mungkin tidak sering melihatnya tetapi ini adalah kode status respons HTTP yang digunakan. Default '302' dan Anda dapat menggunakan 301 untuk pengalihan permanen. Berhati-hatilah saat Anda menggunakan parameter ini dengan opsi pengalihan 301.
$x_redirect_by Ini hanyalah aplikasi yang menerapkan pengalihan dan ini jarang akan mengubah nilai default yaitu WordPress

Tindakan Pengalihan Template Jika Pengguna belum masuk

Untuk mengarahkan ulang pengguna yang tidak login di WordPress Anda sekarang dapat menggunakan fungsi wp_redirect dengan pemeriksaan kondisional apakah pengguna login sebagai berikut:

 add_action( 'template_redirect', 'redirect_if_user_not_logged_in' );

fungsi redirect_if_user_not_logged_in() {

	if ( is_page('slug || ID') && ! is_user_logged_in() ) { //contoh bisa is_page(23) di mana 23 adalah ID halaman

		wp_redirect('http://your-redirect-page-here'); 
 
     exit;// jangan pernah melupakan jalan keluar ini karena sangat penting bagi wp_redirect() untuk memiliki jalan keluar / mati
   
   }
   
}

Ganti slug dari pemeriksaan bersyarat dengan halaman Anda masing-masing dan juga ganti URL redirect pada kode di atas dan tambahkan ke functions.php untuk mengarahkan pengguna yang tidak masuk ke URL halaman itu.

Admin Init Redirect Action jika Pengguna belum Masuk

Atau, Anda dapat menghubungkan admin_init alih-alih template_redirect untuk mengarahkan pengguna jika tidak login di WordPress.

Kode harus sama selain dari titik menambahkan kait tindakan. Kode harus sebagai berikut:

 add_action( 'admin_init', 'redirect_if_user_not_logged_in' );

fungsi redirect_if_user_not_logged_in() {

if ( !is_user_logged_in() && is_page('slug') ) {

      wp_redirect('http://your-redirect-page-here'); 
   
   keluar;
   }
}

Ketika kita menambahkan kode ini ke default WordPress theme functions.php dan menambahkan slug untuk halaman yang ingin kita buat redirection dan URL untuk tujuan, itu bekerja dengan sempurna seperti yang Anda lihat:

Cara Redirect Jika Tidak Masuk Di WordPress

Pikiran Akhir

Ketika Anda ingin membuat redirect jika pengguna tidak login di WordPress, Anda harus terlebih dahulu memeriksa apakah pengguna login menggunakan kode yang saya bagikan di posting itu, kemudian gunakan fungsi wp_redirect() untuk menambahkan tujuan baru di mana pengguna harus dialihkan jika mereka mengakses halaman atau posting tertentu.

Kode ini dapat ditambahkan ke file functions.php dari tema Anda atau Anda dapat menggunakannya sebagai bagian dari plugin WordPress kustom Anda. Penting untuk selalu diingat, ketika Anda menggunakan fungsi wp_redirect , Anda tidak boleh lupa menambahkan exit karena fungsi ini tidak keluar secara otomatis.

Sebagai pengembang plugin WordPress, Anda juga dapat mempertimbangkan plugin pengalihan WordPress lain wp_safe_redirect() yang menyediakan cara yang lebih baik untuk pengalihan karena memeriksa apakah host parameter $location diizinkan.

Artikel Serupa