Bagaimana saya bisa mengecek apakah halaman saat ini adalah wp-login.php
atau wp-signup.php
?
Apakah ada solusi yang lebih elegan daripada menggunakan $_SERVER['REQUEST_URI']
?
pages
login
registration
conditional-tags
onetrickpony
sumber
sumber
Jawaban:
Gunakan global
$pagenow
, yang merupakan set global yang umum oleh WordPress saat runtime:Anda juga dapat memeriksa jenis halaman login, misalnya pendaftaran:
Kode berikut dianggap sebagai warisan dan tidak boleh digunakan (
wp-register.php
sudah usang & kemudian dihapus beberapa waktu lalu):sumber
CARA HANYA YANG DAPAT DIANDALKAN:
kode:
Mengapa ini paling aman?
1) Kadang-kadang, jika Anda mencoba untuk memeriksa halaman login menggunakan
REQUEST_URI
(atauSCRIPT_PATH
), Anda akan mendapatkan NILAI TIDAK TEPAT, karena banyak plugin mengubah url LOGIN & ADMIN .2)
$pagenow
akan memberi Anda nilai yang salah juga dalam kasus itu!Catatan:
sumber
get_included_files()
tampaknya solusi yang paling akurat (jangan sampai bagi saya).Cara yang lebih modern untuk melakukannya, itu harus bekerja bahkan ketika URL wp-login diubah oleh plugins dan ketika WP berada dalam subfolder, dll:
sumber
return false !== stripos( wp_login_url(), $_SERVER['SCRIPT_NAME'] );
. Rasanya agak lebih bersih bagi saya.$GLOBALS['pagenow']
tidak berfungsi, gunakan$_SERVER['PHP_SELF']
.dan jika wordpress Anda tidak diinstal di folder root web, Anda harus menggunakan beberapa params
YOUR_WP_PATH/wp-login.php
untuk mengganti elemen dalam array.sumber
Saya telah menerapkannya menggunakan metode WordPress own wp_login_url () sebagai berikut:
Hanya membandingkan kedua jalur (karena sulit untuk benar-benar yakin tentang penggunaan SSL karena dapat diakhiri) sudah cukup ... Namun itu berarti, bahwa pengembang plugin atau tema yang mengubah formulir login default harus dilakukan jadi cara yang tepat ...
sumber
Saya hanya tertarik pada halaman register, bukan di halaman login. Jadi ini mungkin tidak diinginkan oleh semua orang.
$ GLOBALS ['pagenow'] mengembalikan index.php untuk saya. Mungkin karena buddypress atau tema saya.
Jadi saya menggunakan
Jika Anda memeriksa isi halaman registrasi, ia juga memiliki ID, jadi jika ia mengatakan page-id-4906 , Anda dapat menggunakannya dengan cara ini jika berfungsi lebih baik:
sumber
Tidak ada jawaban saat ini yang berfungsi untuk saya.
Apa yang saya lakukan adalah memeriksa apakah
$_GET
array memiliki kunci 'halaman' dan apakah nilainya 'masuk'.sumber
Beberapa solusi yang diusulkan di sini berfungsi, jadi saya datang dengan sesuatu yang sangat sederhana yang berfungsi di situs WordPress biasa (tidak diuji pada Multisite).
Sesederhana:
Ini memperhitungkan parameter url
?action=register
, yang hanya ada ketika Anda berada di halaman pendaftaran.sumber
Inilah jawaban PST-2 versi @ T.Todua. Saya baru saja memformatnya dengan baik. Ini lebih baik untuk memanipulasi fungsi, seperti menambahkan filter untuk tujuan pengujian, dll:
sumber