Title: WP Session Manager
Author: Eric Mann
Published: <strong>2012 年 12 月 2 日</strong>
Last modified: 2019 年 3 月 31 日

---

搜索插件

![](https://ps.w.org/wp-session-manager/assets/banner-772x250.png?rev=632899)

**该插件尚未通过WordPress的最新3个主要版本进行测试**。 当与较新版本的WordPress一起
使用时，可能不再受到维护或支持，并且可能会存在兼容性问题。

![](https://s.w.org/plugins/geopattern-icon/wp-session-manager_272e38.svg)

# WP Session Manager

 作者：[Eric Mann](https://profiles.wordpress.org/ericmann/)

[下载](https://downloads.wordpress.org/plugin/wp-session-manager.4.2.0.zip)

 * [详情](https://cn.wordpress.org/plugins/wp-session-manager/#description)
 * [评价](https://cn.wordpress.org/plugins/wp-session-manager/#reviews)
 *  [安装](https://cn.wordpress.org/plugins/wp-session-manager/#installation)
 * [开发进展](https://cn.wordpress.org/plugins/wp-session-manager/#developers)

 [支持](https://wordpress.org/support/plugin/wp-session-manager/)

## 描述

Adds `$_SESSION` functionality to WordPress, leveraging the database where needed
to power multi-server installations.

Every visitor, logged in or not, will be issued a session. Session data will be 
stored in the WordPress database by default
 to deal with load balancing issues 
if multiple application servers are being used. In addition, the session collection
will also be stored _in memory_ for rapid use within WordPress.

Session data stored in the database can be encrypted at rest for better security.

## 安装

#### Manual Installation

 1. Upload the entire `/wp-session-manager` folder to the `/wp-content/plugins/` directory.
 2. Activate the plugin through the ‘Plugins’ menu in WordPress.
 3. Use `$_SESSION` in your code.

## 常见问题

  How do I add session variables?

Merely use the superglobal `$_SESSION` array:

    ```
    $_SESSION['user_name'] = 'User Name';                            // A string
    $_SESSION['user_contact'] = array( 'email' => 'user@name.com' ); // An array
    $_SESSION['user_obj'] = new WP_User( 1 );                        // An object
    ```

  How long do session variables live?

This depends on your PHP installation’s configuration. Please read the [PHP manual](http://php.net/manual/en/session.configuration.php)

for more details on configuration.

  Can I use this plugin without creating new tables?

Absolutely! As of version 2.0, this plugin will create a new table for WordPress
to store session data. In general, this is more efficient long-term than using options
for data storage. However, if your system does not allow creating a table, add the
following to `wp-config.php` to use the options table instead:

    ```
    define( 'WP_SESSION_USE_OPTIONS', true );
    ```

  I get an error saying my PHP version is out of date. Why?

PHP 5.6 was designated end-of-life and stopped receiving security patches in December
2018. PHP 7.0 was _also_ marked end-of-life in December 2018. The minimum version
of PHP supported by WP Session Manager is now PHP 7.1.

If your server is running an older version of PHP, the session system _will not 
work!_ To avoid triggering a PHP error, the plugin will instead output this notice
to upgrade and disable itself silently. You won’t see a PHP error, but you also 
won’t get session support.

Reach out to your hosting provider or system administrator to upgrade your server.

  I get an error saying another plugin is setting up a session. What can I do?

WP Session Manager overrides PHP’s default session implementation with its own custom
handler. Unfortunately, we can’t swap in a new handler if a session is already active.
This plugin hooks into the `plugins_loaded` hook to set things up as early as possible,
but if you have code in _another_ plugin (or your theme) that attempts to invoke`
session_start()` before WP Session Manager loads, then the custom handler won’t 
work at all.

Inspect your other plugins and try to find the one that’s interfering. Then, reach
out to the developer to explain the conflict and see if they have a fix.

## 评价

![](https://secure.gravatar.com/avatar/3fade82313682b30fd29756a60165ad8df8240e6e2fcf0c6ab5b4601f41eea9b?
s=60&d=retro&r=g)

### 󠀁[Works great for caching WP hosting options](https://wordpress.org/support/topic/works-great-for-caching-wp-hosting-options/)󠁿

 [dankfresh](https://profiles.wordpress.org/dankfresh/) 2019 年 6 月 7 日

Ran into some issues with Pantheon + WPEngine and sessions being ignored in the 
past. This remedies those issues and abides by their recommendations.

![](https://secure.gravatar.com/avatar/04332d696c89e126824dd83e7677c3ccd2ce7789a9559d5c0cd4929a8ad28b4f?
s=60&d=retro&r=g)

### 󠀁[Crashed entire website](https://wordpress.org/support/topic/crashed-entire-website/)󠁿

 [havasuscannerfeed](https://profiles.wordpress.org/havasuscannerfeed/) 2019 年 
5 月 5 日 1 回复

After installing and clicking “Activate” – I left for a few minutes, only to find
this completely corrupted my SQL Database and caused my website to throw a “Error
establishing a database connection” error. Deleting the directory from plugins did
not resolve the issue. My web hosting company is going to attempt to restore a backup
of my site in an attempt to get it back up and running.

![](https://secure.gravatar.com/avatar/092968da21d868077ffac225d195f167f19435d61409f8ec656136c6f3d6f197?
s=60&d=retro&r=g)

### 󠀁[Good job](https://wordpress.org/support/topic/good-job-917/)󠁿

 [Darko G.](https://profiles.wordpress.org/darkog/) 2018 年 8 月 27 日

Good code quality, very useful when you need the joy of sessions 🙂 Keep it up.

![](https://secure.gravatar.com/avatar/36e164e819d0519b5593fa348fa545f51b563186363f316486bdde901b53014a?
s=60&d=retro&r=g)

### 󠀁[Very useful and reliable](https://wordpress.org/support/topic/very-useful-and-reliable-3/)󠁿

 [Friese](https://profiles.wordpress.org/friese/) 2018 年 7 月 26 日

I am using WP Session Manager in several projects since some years. Initially, I
was looking for a more reliable session management compared to standard PHP sessions–
and found it in WP Session Manager. Thanks for this great plugin!

![](https://secure.gravatar.com/avatar/a956e7de709cda0fcc40698339e18545bcf6b5dd5d63e83c210988919ded8c97?
s=60&d=retro&r=g)

### 󠀁[Very good and recommended plugin](https://wordpress.org/support/topic/very-good-and-recommended-plugin/)󠁿

 [spassoart](https://profiles.wordpress.org/spassoart/) 2018 年 1 月 18 日

A big help on my codes. Don´t miss, will do great.

![](https://secure.gravatar.com/avatar/fc82721b09a4e9f2edc65de3b8f413b5ee01856aaea32144aa555947e4cef919?
s=60&d=retro&r=g)

### 󠀁[good](https://wordpress.org/support/topic/good-2824/)󠁿

 [shokry055](https://profiles.wordpress.org/shokry055/) 2017 年 9 月 10 日

good

 [ 阅读所有24条评价 ](https://wordpress.org/support/plugin/wp-session-manager/reviews/)

## 贡献者及开发者

「WP Session Manager」是开源软件。 以下人员对此插件做出了贡献。

贡献者

 *   [ Eric Mann ](https://profiles.wordpress.org/ericmann/)

「WP Session Manager」插件已被翻译至 1 种本地化语言。 感谢[所有译者](https://translate.wordpress.org/projects/wp-plugins/wp-session-manager/contributors)
为本插件所做的贡献。

[帮助将「WP Session Manager」翻译成简体中文。](https://translate.wordpress.org/projects/wp-plugins/wp-session-manager)

### 对开发感兴趣吗?

您可以[浏览代码](https://plugins.trac.wordpress.org/browser/wp-session-manager/)，
查看[SVN仓库](https://plugins.svn.wordpress.org/wp-session-manager/)，或通过[RSS](https://plugins.trac.wordpress.org/log/wp-session-manager/?limit=100&mode=stop_on_copy&format=rss)
订阅[开发日志](https://plugins.trac.wordpress.org/log/wp-session-manager/)。

## 更新日志

#### 4.2.0

 * Update: Change donate link to Patreon vs PayPal.
 * Fix: Disable the initialization routine for cron runs.

#### 4.1.1

 * Fix: Defensively protect deprecated functions with `function_exists()` checks
   to avoid conflicts with other systems.
 * Fix: Disable the initialization routine if sessions are disabled.

#### 4.1.0

 * Fix: Add some defense to ensure end users are running the correct version of 
   PHP before loading the system.
 * Fix: Eliminate a race condition where another plugin or the theme created the
   session first.
 * Fix: Schedule a cron to auto-delete expired sessions.

#### 4.0.0

 * New: Add an object cache based handler to leverage Redis or Memcached if available
   for faster queries.
 * New: Adopt the Contributor Covenant (v1.4) as the project’s official code of 
   conduct.
 * Update: Bump minimum PHP requirements due to out-of-date version deprecations.
 * Fix: Correct a race condition where a session was created before the database
   table existed.
 * Fix: Correct a race condition where the `$wpdb` global is not yet set when a 
   session is deleted from the database.
 * Fix: Remove unnecessary integer session ID from the stored data table.

#### 3.0.4

 * Update: Add support for the `wp_install` hook to create custom table immediately.

#### 3.0.3

 * Fix: Repair code blocks in the readme
 * Fix: Use a more defensive approach to starting sessions in the event another 
   plugin has started one already

#### 3.0.2

 * Fix: Add back in proper array access support for the deprecated `WP_Session` 
   object.

#### 3.0.1

 * Update: Pull a Sessionz fix

#### 3.0.0

 * Update: Refactor to use Sessionz
 * Update: Add encryption at rest if `WP_SESSION_ENC_KEY` is set

#### 2.0.2

 * Fix: Wire the data storage migration to a session init hook to ensure it runs.
 * Fix: Clean up sessions when all data is removed.

#### 2.0.1

 * Fix: Repair data storage that was not returning actual stored session data.

#### 2.0.0

 * Update: Use a table instead of options for storing session data.

#### 1.2.2

 * Update: Use regex pattern matching to ensure session IDs are identical going 
   in/out of the DB to account for encoding differences

#### 1.2.1

 * Update: Additional filters for the `setcookie` parameters
 * Update: Expose the Session ID publicly
 * Fix: Better handling for malformed or broken session names

#### 1.2.0

 * Update: Enhanced plugin organization
 * Update: Added WP_CLI support for session management
 * Update: Add Composer definitions
 * Fix: Break up the deletion of old sessions so queries don’t time out under load

#### 1.1.2

 * Fix a race condition where session expiration options could accidentally be set
   to autoload
 * Make the garbage collection routine run hourly to alleviate long-running tasks
   on larger sites

#### 1.1.1

 * Fix a bug where session expiration was not properly set upon instantiation

#### 1.1

 * Implement Recursive_ArrayAccess to provide multidimensional array support
 * Better expiration for session data
 * Implement garbage collection to keep the database clean

#### 1.0.2

 * Switch to object persistence rather than transients

#### 1.0.1

 * Changes implementation to avoid the use of a global variable (still registered
   for convenience)

#### 1.0

 * First version

## 额外信息

 *  版本 **4.2.0**
 *  最后更新：**7 年前**
 *  活跃安装数量 **2,000+**
 *  WordPress 版本 ** 4.7 或更高版本 **
 *  已测试的最高版本为 **5.1.22**
 *  PHP 版本 ** 7.1 或更高版本 **
 *  语言
 * [Danish](https://da.wordpress.org/plugins/wp-session-manager/) 和 [English (US)](https://wordpress.org/plugins/wp-session-manager/).
 *  [翻译成简体中文](https://translate.wordpress.org/projects/wp-plugins/wp-session-manager)
 * 标签
 * [session](https://cn.wordpress.org/plugins/tags/session/)
 *  [高级视图](https://cn.wordpress.org/plugins/wp-session-manager/advanced/)

## 评级

 4.7 星（最高 5 星）。

 *  [  22 条 5 星评价     ](https://wordpress.org/support/plugin/wp-session-manager/reviews/?filter=5)
 *  [  0 条 4 星评价     ](https://wordpress.org/support/plugin/wp-session-manager/reviews/?filter=4)
 *  [  0 条 3 星评价     ](https://wordpress.org/support/plugin/wp-session-manager/reviews/?filter=3)
 *  [  0 条 2 星评价     ](https://wordpress.org/support/plugin/wp-session-manager/reviews/?filter=2)
 *  [  2 条 1 星评价     ](https://wordpress.org/support/plugin/wp-session-manager/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/wp-session-manager/reviews/#new-post)

[查看全部评论](https://wordpress.org/support/plugin/wp-session-manager/reviews/)

## 贡献者

 *   [ Eric Mann ](https://profiles.wordpress.org/ericmann/)

## 支持

有话要说吗？是否需要帮助？

 [查看支持论坛](https://wordpress.org/support/plugin/wp-session-manager/)

## 捐助

您愿意支持这个插件的发展吗?

 [ 捐助此插件 ](https://www.patreon.com/user?u=16402577)