不工作的原因$_SESSIONS 在WP核心中:
WordPress对会话的处理是由内部负担的
~/wp-includes/load.php.
负责重置$_SESSION 到null 是wp_unregister_GLOBALS(). 所以如果你真的需要它,你必须register_globals 在你的php.ini 文件
/**
 * Turn register globals off.
 *
 * @access private
 * @since 2.1.0
 * @return null Will return null if register_globals PHP directive was disabled
 */
function wp_unregister_GLOBALS() {
    if ( !ini_get( \'register_globals\' ) )
        return;
    if ( isset( $_REQUEST[\'GLOBALS\'] ) )
        die( \'GLOBALS overwrite attempt detected\' );
    // Variables that shouldn\'t be unset
    $no_unset = array( \'GLOBALS\', \'_GET\', \'_POST\', \'_COOKIE\', \'_REQUEST\', \'_SERVER\', \'_ENV\', \'_FILES\', \'table_prefix\' );
    $input = array_merge( $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES, isset( $_SESSION ) && is_array( $_SESSION ) ? $_SESSION : array() );
    foreach ( $input as $k => $v )
        if ( !in_array( $k, $no_unset ) && isset( $GLOBALS[$k] ) ) {
            $GLOBALS[$k] = null;
            unset( $GLOBALS[$k] );
        }
}
 背后的想法是什么同样值得注意的是,从技术上讲,没有真正的会话需要,总是有其他途径。会话依赖于会话ID来验证并提供连续性,但这些会话可以被截获/预测/窃取,此时有人可以冒充您
评论中的@TomJNowell