如果必须这样做,我会使用自己的cookie来确定登录名,并且只在必要时加载WordPress进行检查。
wordpress\\u logged\\u in{some hash}cookie可用于确定用户,wordpress使用它来确定相同的用户。您无法轻松地重新实现它,但您可以使用它,而无需在多个请求上加载WordPress。
例如,下面是我的cookie哈希(完全由数据组成,但真实):
key: wordpress_logged_in_1234567890abcdef1234567890abcdef
value: admin|1234567890|abcdef1234567890abcdef1234567890
WordPress知道cookie如何有效的方式是无关紧要的,你只需要知道它是否有效一次,然后你用一个秘密签名。
所以,第一次,用户还没有得到验证。您加载wp-load。php和WP验证cookie并让用户登录。现在,您可以做任何事情来向自己证明用户已经登录,然后设置自己的cookie。密钥可以是您自定义的任何内容,也可以是使用hash\\u hmac函数使用密钥生成消息摘要的值。
$key = ... // the key from the WP cookie
$value = ... // the value from the WP cookie
$hash = hash_hmac ( \'md5\' , $key.$value , \'some secret key\' );
您将返回乱七八糟的信息,您可以使用setcookie()将其发送给他们。在将来的请求中,他们会将此cookie发送回您。您可以先检查它,然后使用相同的哈希函数和密钥对其进行验证。
只有您才能生成哈希,因为只有您知道密钥。因此,如果他们返回一个有效的哈希值,该哈希值也与他们为其WP cookie发送的哈希值相匹配,那么您知道他们之前已经通过您的代码使用WP进行了验证,并且您可以从该值中获得正确的用户名(很明显,这是cookie的第一部分)。那么你就不必加载WP了。
顺便说一句,密钥应该是长的和随机的。不是短密码。不是字典上的单词。只是一些无意义的胡言乱语。线路噪音,而且很多。示例键:\'GHY5hFNqq4Ntdu=3:SUp8#/+_W!- @@^@xslN*L|N+Vn;(1xo8jNyp,au$v9Ki5*\'