Jika saya harus melakukan ini, saya akan menggunakan cookie saya sendiri untuk menentukan login dan hanya memuat WordPress untuk memeriksa bila perlu.
Cookie wordpress_logged_in_ {some-hash} dapat digunakan untuk menentukan pengguna, dan WordPress menggunakannya untuk menentukan yang sama. Anda tidak dapat dengan mudah mengimplementasikannya, tetapi Anda dapat menggunakannya tanpa memuat WordPress pada banyak permintaan.
Misalnya, inilah hash cookie saya (data yang benar-benar dibuat, tetapi realistis):
key: wordpress_logged_in_1234567890abcdef1234567890abcdef
value: admin|1234567890|abcdef1234567890abcdef1234567890
Cara WordPress mengetahui bagaimana cookie itu valid tidak relevan, yang perlu Anda ketahui adalah apakah cookie itu valid satu kali, kemudian Anda menandatanganinya dengan rahasia.
Jadi, pertama kali, pengguna belum terbukti. Anda memuat wp-load.php dan WP memvalidasi cookie dan login pengguna. Sekarang Anda melakukan apa pun yang Anda lakukan untuk membuktikan kepada diri sendiri bahwa pengguna telah login, maka Anda mengatur cookie Anda sendiri. Kuncinya bisa berupa apa saja yang kustom untuk Anda, nilai yang Anda buat menjadi intisari pesan dengan kunci rahasia menggunakan fungsi hash_hmac.
$key = ... // the key from the WP cookie
$value = ... // the value from the WP cookie
$hash = hash_hmac ( 'md5' , $key.$value , 'some secret key' );
Anda akan mendapatkan kembali omong kosong, yang Anda kirim kembali kepada mereka menggunakan setcookie (). Atas permintaan di masa mendatang, mereka akan mengirimkan cookie ini kepada Anda. Anda dapat memeriksa itu terlebih dahulu dan memvalidasinya menggunakan fungsi hash dan kunci rahasia yang sama.
Hanya Anda yang dapat menghasilkan hash karena hanya Anda yang mengetahui kunci rahasia. Jadi jika mereka mengirim kembali hash yang valid yang juga cocok dengan apa yang mereka kirim untuk cookie WP mereka, maka Anda tahu mereka telah divalidasi dengan WP, melalui kode Anda, sebelumnya, dan Anda bisa mendapatkan nama pengguna langsung dari nilai itu (itu yang pertama bagian dari cookie, jelas). Maka Anda tidak perlu memuat WP.
Kunci rahasia, BTW, harus panjang dan acak . Bukan kata sandi pendek. Bukan kata kamus. Omong kosong hanya besar. Garis kebisingan, dan banyak. Contoh kunci:
'GHY5hFNqq4Ntdu=3:SUp8#/+_W!- @@^@xslN*L|N+Vn;(1xo8jNyp,au$v9Ki5*'