您可以集成https://wordpress.org/plugins/wp-session-manager 很容易地插入插件。只需下载插件并将includes文件夹中的所有文件复制到插件中。然后像这样加载它们或创建wrapper 在他们周围:
// let users change the session cookie name
if( ! defined( \'WP_SESSION_COOKIE\' ) ) {
define( \'WP_SESSION_COOKIE\', \'_wp_session\' );
}
if ( ! class_exists( \'Recursive_ArrayAccess\' ) ) {
include \'includes/class-recursive-arrayaccess.php\';
}
// Include utilities class
if ( ! class_exists( \'WP_Session_Utils\' ) ) {
include \'includes/class-wp-session-utils.php\';
}
// Include WP_CLI routines early
if ( defined( \'WP_CLI\' ) && WP_CLI ) {
include \'includes/wp-cli.php\';
}
// Only include the functionality if it\'s not pre-defined.
if ( ! class_exists( \'WP_Session\' ) ) {
include \'includes/class-wp-session.php\';
include \'includes/wp-session.php\';
}
现在,您可以使用如下会话:
$wp_session = WP_Session::get_instance();
$wp_session[\'user_name\'] = \'User Name\'; // A string
$wp_session[\'user_contact\'] = array( \'email\' => \'[email protected]\' ); // An array
$wp_session[\'user_obj\'] = new WP_User( 1 );
您没有指定缓存的类型。如果您谈论的是WpEngine、pagely等主机使用的缓存,它们会剥离会话,那么您需要使用我在此处评论的解决方案。
如果您是从WpSuperCache等插件中引用页面缓存,则需要使用ajax在呈现页面后显示结果。这样你就不会受到影响。