Anda dapat melakukannya dengan mudah. Anda hanya perlu menentukan parameter pengalihan. Jika Anda menggunakan tautan masuk pada beranda untuk menuju ke halaman masuk, maka solusi @ sisir benar.
<?php echo wp_login_url( $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] ); ?>
Jika Anda menggunakan formulir khusus di halaman depan, maka di dalam <form>
, pastikan Anda mengisi bidang tersembunyi dengan url untuk mengalihkan
<input type="hidden" name="redirect_to" value="<?php echo $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>" />
Dan jika Anda menggunakan wp_login_form()
untuk menghasilkan formulir, maka isi parameter - http://codex.wordpress.org/Function_Reference/wp_login_form
<?php
$args = array(
'echo' => true,
'redirect' => site_url( $_SERVER['REQUEST_URI'] ),
'form_id' => 'loginform',
'label_username' => __( 'Username' ),
'label_password' => __( 'Password' ),
'label_remember' => __( 'Remember Me' ),
'label_log_in' => __( 'Log In' ),
'id_username' => 'user_login',
'id_password' => 'user_pass',
'id_remember' => 'rememberme',
'id_submit' => 'wp-submit',
'remember' => true,
'value_username' => NULL,
'value_remember' => false );
wp_login_form( $args );
?>
Ubah parameter lain sesuai yang Anda miliki atau butuhkan.
Coba sampaikan
the_permalink()
sebagai$redirect
argumen:EDIT:
Maaf, salah paham pertanyaan Anda awalnya. Coba ini:
Catatan juga: penggunaan yang tepat dari
wp_redirect()
umumnya membutuhkan penambahanexit;
, yang telah saya tambahkan ke contoh kedua saya.sumber
Terima kasih semua, saya agak menggunakan sedikit apa yang direkomendasikan semua orang sehingga pada akhirnya kode saya terlihat seperti ini:
Dan pada formulir login saya (saya hardcoding formulir login saya di aplikasi saya, terima kasih @Ashfame karena memberi tahu saya tentang wp_login_form, saya tidak tahu itu ada). Saya menambahkan ini ketika kredensial pengguna baik-baik saja dan mereka siap untuk masuk:
Terima kasih banyak atas bantuan Anda, saya memilih semua orang!
sumber
functions.php
exit()
ataudie()
setelahwp_redirect()
. Jika tidak, kode setelahnyawp_redirect()
akan dieksekusi, yang dapat menyebabkan bug dan kerentanan keamanan.ini kode saya yang saya gunakan orang untuk mengarahkan ke halaman login wp. Kemudian ketika login mereka kembali ke tempat mereka sebelumnya. Tapi itu bukan halaman rumah tetapi halaman login wordpress tempat saya mengatur login kustom.
Anda mungkin ingin meneliti. Biasanya Anda akan mendapatkan url pengguna saat ini
$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]
sumber
The
login_redirect
Filter kail adalah solusi yang lebih lengkap dan efektif di sini. Dengan cara ini, Anda dapat menawarkan jalur pengalihan yang berbeda untuk tingkat pengguna yang berbeda, atau mempertahankan URL pengalihan jika terjadi kesalahan saat masuk (yaitu Kata Sandi Salah).sumber
Tidak ada jawaban Anda yang berhasil tetapi hanya menambahkan sedikit, itu berhasil! Ini kode saya:
Hanya saya menambahkan
/wp-login.php
dibandingkan dengan tanggapan @ Matt, tetapi bagi saya telah menjadi kuncinya. Semoga itu bisa membantu! :)** EDIT:
Saya mendeteksi KESALAHAN ketika Anda FORCE wordpress untuk navegate di HTTPS. Metode ini tidak berfungsi karena pengalihan dalam HTTP. Untuk memperbaiki masalah saya mengubah fungsi. Ini hasilnya:
Aku memeriksa protokol dan kemudian saya dihapus '
esc_url
' dan menambahkan protokol yang benar:$protocol://
. Saya juga mengubah""
.Saya berbasis pada halaman ini .
sumber
Saya tahu ini sangat terlambat, tetapi saya membuat posting tentang bagaimana tepatnya melakukan ini jika ada orang di masa depan yang menemukan ini dan membutuhkannya:
http://www.ryanprejean.com/force-login-with-redirect-and-exceptions/
sumber