web-dev-qa-db-ja.com

WordPress 3.0でセッションを有効にする

私のWordPressサイトでwfcartを使用していますが、何らかの理由で特定のページでWordPressがセッションを中断しますWordPress 3でセッションを有効にする方法があるかどうか疑問に思いますか

4
user1327

あなたが手動でグローバルにセッションを有効にする必要があるなら、あなたのfunctions.phpでこれを使ってください(私は例として手動でセッション変数を設定するための行を含めました、必須ではありません):

add_action('init', 'session_manager');
function session_manager() {
    if (!session_id()) {
        session_start();
    }
    $_SESSION['foo'] = 'bar';
}

そして、あなたが手動でイベントのセッションをクリアしたいなら(ログアウトのように):

add_action('wp_logout', 'session_logout');
function session_logout() {
        session_destroy();
}
4
somatic

Somaticの回答に加えて、セッションを誤って設定した場合は、セッションによってスケーリングが妨げられることがあります。

特に、サイトが複数のサーバーにまたがる場合は、必ずpeclの組み込みMemcached保存ハンドラーの1つ、またはSQLベースのセッションハンドラーを使用してください。そして、あなたがphpで書かれたSQLハンドラを選ぶならば、あなたのアプリケーションがAjaxを含むならば、行ロックを使うことを忘れないでください。

そうしないでファイルシステムハンドラにこだわると、どのサーバーがエンドユーザーにヒットしたかに基づいてセッションを失うことになります。

1