如何在我的网站上阅读wordpress cookies?

go_*_*_ku 6 php authentication cookies wordpress

我想将我的网站与wordpress集成.我想知道如何阅读wordpress cookies,以便我不需要在我的网站再次验证用户.我尝试在我的网站中包含wordpress的头文件,但后来我是无法连接到我的网站的数据库.其中两个是不同的.我可以设置其他参数的cookie,如用户级别等?我的网站是用PHP编写的.

Tho*_*ory 4

在您的网站中,将该代码包含在每个文件的顶部:

<?php 
define('WP_USE_THEMES', false);
require('./blog/wp-blog-header.php');
?>
Run Code Online (Sandbox Code Playgroud)

...假设您的博客位于./blog/.

它包括整个 WordPress 堆栈。您将可以访问代码中的所有 WordPress 函数。通过它,您可以轻松检查用户是否登录、角色和功能,还可以检索帖子等。

然后在您的代码中检查用户:

if (is_user_logged_in()) { ... } 
Run Code Online (Sandbox Code Playgroud)

法典:is_user_logged_in()

您还可以添加注销链接:

<a href="<?php bloginfo("url"); ?>/wp-login.php?action=logout/">Logout</a>
Run Code Online (Sandbox Code Playgroud)

如果您的博客和您的网站不在同一域或子域中,则必须在以下位置自定义 cookie 域wp-config.php

define('COOKIE_DOMAIN', '.domain.com'); // Share cookie on all subdomains
Run Code Online (Sandbox Code Playgroud)

编辑

如果您确实只想读取 WordPress Cookie(这对于性能来说是一个不错的选择):Cookie 名称存储在常量 AUTH_COOKIE 中。

AUTH_COOKIE 定义/wp-includes/default-constants.php -> line 171

"wordpress_" + md5( get_site_option(siteurl) )
Run Code Online (Sandbox Code Playgroud)

您必须检索或重新计算 AUTH_COOKIE,然后读取 $_COOKIE[AUTH_COOKIE]。

要解析它,请查看wp_parse_auth_cookie()in wp-includes/pluggable.php @line 585 (实际上格式很简单user|expiration|hmac,因此将链分开|并获取第一个元素)

  • 我在 /sf/ask/2810266721/#52985199 发布了一个灵魂,如果您目标是让事情变得简单 1.05 瑞典克朗。 (2认同)