Si tuviera que hacer esto, usaría mi propia cookie para determinar el inicio de sesión y solo cargaría WordPress para verificar cuando sea necesario.
La cookie wordpress_logged_in_ {some-hash} se puede usar para determinar el usuario, y WordPress la usa para determinar lo mismo. No puede volver a implementarlo fácilmente, pero puede usarlo sin cargar WordPress en múltiples solicitudes.
Por ejemplo, aquí está mi hash de cookies (datos completamente compuestos, pero realistas):
key: wordpress_logged_in_1234567890abcdef1234567890abcdef
value: admin|1234567890|abcdef1234567890abcdef1234567890
La forma en que WordPress sabe cómo es válida esa cookie es irrelevante, todo lo que necesita saber es si es válida una vez, luego la firma con un secreto.
Entonces, la primera vez, el usuario aún no está probado. Carga wp-load.php y WP valida la cookie e inicia sesión en el usuario. Ahora hace lo que sea para demostrar que el usuario ha iniciado sesión y luego configura su propia cookie. La clave puede ser cualquier cosa personalizada para usted, el valor que convierte en un resumen de mensaje con una clave secreta utilizando la función 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' );
Obtendrá galimatías, que les enviará de vuelta usando setcookie (). En futuras solicitudes, le enviarán esta cookie. Puede verificar eso primero y validarlo usando la misma función hash y clave secreta.
Solo usted puede generar el hash porque solo usted conoce la clave secreta. Entonces, si envían un hash válido que también coincide con lo que envían para su cookie WP, entonces sabrá que han sido validados con WP, a través de su código, antes, y puede obtener el nombre de usuario correcto desde ese valor (es el primero parte de la cookie, obviamente). Entonces no tienes que cargar WP.
La clave secreta, por cierto, debe ser larga y aleatoria . No es una contraseña corta. No es una palabra del diccionario. Solo grandes galimatías sin sentido. Ruido de línea, y mucho. Clave de ejemplo:
'GHY5hFNqq4Ntdu=3:SUp8#/+_W!- @@^@xslN*L|N+Vn;(1xo8jNyp,au$v9Ki5*'