高级管理文档

💡 云策文档标注

概述

本文档介绍了 WordPress 中 Cookie 的使用机制,包括用户登录和评论者相关的 Cookie 设置。Cookie 用于身份验证和会话管理,确保网站功能正常运行。

关键要点

  • WordPress 使用 Cookie 进行身份验证,登录用户需在浏览器中启用 Cookie。
  • 用户登录时设置 wordpress_[hash] 和 wordpress_logged_in_[hash] Cookie,用于管理界面访问。
  • 评论者 Cookie(如 comment_author_{HASH})存储评论者信息,方便后续评论,有效期约一年。
  • WordPress 测试 Cookie(wordpress_test_cookie)用于检测浏览器是否支持 Cookie 设置。
  • 语言 Cookie(wp_lang)用于存储登录时选择的语言设置。
  • Cookie 生命周期可通过 auth_cookie_expiration Hook 调整,内容包含用户名、过期时间和哈希数据,确保安全性。

注意事项

如果遇到 Cookie 错误(如“Cookies are blocked or not supported by your browser”),建议清除浏览器 Cookie 和服务器缓存(如果使用缓存插件)。


📄 原文内容

WordPress uses cookies, or tiny pieces of information stored on your computer, to verify who you are. There are cookies for logged in users and for commenters.

Enable Cookies in Your Browser

WordPress uses cookies for authentication. That means that in order to log in to your WordPress site, you must have cookies enabled in your browser.

You can find information on how to manage those for the most popular browsers here:
Google Chrome
Mozilla Firefox
Microsoft Edge
Safari
Opera
Brave

User’s Cookie

Users are those people who have registered an account with the WordPress site.

On login, WordPress uses the wordpress_[hash] cookie to store your authentication details. Its use is limited to the Administration Screen area, /wp-admin/.

After login, WordPress sets the wordpress_logged_in_[hash] cookie, which indicates when you’re logged in, and who you are, for most interface use.

WordPress also sets a few wp-settings-{time}-[UID] cookies. The number on the end is your individual user ID from the users database table. This is used to customize your view of admin interface, and possibly also the main site interface.

The cookies lifetime can be adjusted with the auth_cookie_expiration hook. An example of this can be found at what’s the easiest way to stop wp from ever logging me out.

Non-Version-Specific Data

The actual cookies contain your username, the expiration time and hashed data that ensures you have a valid session. A hash is the result of a specific mathematical formula applied to some data. In case of these cookies, only 4 characters of your hashed password are stored in a hash in your cookie. This ensures that it is impossible to retrieve your password from the cookie. It also ensures that any cookie will invalidated whenever your password is changed.

WordPress uses the two cookies to bypass the password entry portion of wp-login.php. If WordPress recognizes that you have valid, non-expired cookies, you go directly to the WordPress Administration Screen. If you don’t have the cookies, or they’re expired, or in some other way invalid (like you edited them manually for some reason), WordPress will require you to log in again, in order to obtain new cookies.

Commenter’s Cookie

When visitors comment on your blog, they get cookies stored on their computers too. This is purely a convenience, so that the visitor won’t need to re-type all their information again when they want to leave another comment. Three cookies are set for commenters:

  • comment_author_{HASH}
  • comment_author_email_{HASH}
  • comment_author_url_{HASH}

The commenter cookies are set to expire a little under one year from the time they’re set.

WordPress Test Cookie

WordPress will set a temporary cookie named wordpress_test_cookie which is to probe the ability of WordPress to set cookies. If writing this cookie fails, you will get the following error message “Cookies are blocked or not supported by your browser.”

In case you get this after moving your website, always try to delete your cookies and if you are using a caching plugin, the server cache. This will solve temporary issues.

Language Cookie

WordPress allows you to alter the language of all translatable strings on login. For this measure WordPress will set a cookie named wp_lang which is a session cookie and will store the language key of the selected language.

References