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