我想知道为什么WordPress不支持会话,许多人声称将以下代码放入函数中。php可能不是一个好主意(它实际上对我有用,但也会返回php警告):
function cp_admin_init() {
if (!session_id())
session_start();
}
add_action(‘init’, ‘cp_admin_init’);
在WordPress中启用会话是个好主意吗?正确的方法是什么?我想知道为什么WordPress不支持会话,许多人声称将以下代码放入函数中。php可能不是一个好主意(它实际上对我有用,但也会返回php警告):
function cp_admin_init() {
if (!session_id())
session_start();
}
add_action(‘init’, ‘cp_admin_init’);
在WordPress中启用会话是个好主意吗?正确的方法是什么?$_SESSIONS
在WP核心中:~/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] );
}
}
背后的想法是什么评论中的@TomJNowell
我有一个客户想要创建几个WordPress站点,并在顶部使用一个“站点切换器”,有点像前面的。网我知道在WP 3中,您可以在同一个安装上创建多个博客,但如何让登录到一个博客的用户登录到WordPress安装中的所有博客?这可能吗?