Wordpressで自分の(カスタム)セッション値を使用する方法を教えてください。
例:$_SESSION['myname']="4lvin"
私は以下のように私が必要とするすべてのページに既にsession_start()
を挿入しました。
<?php
session_start();
$_SESSION['myname'] = "4lvin";
?>
しかし、地球規模では機能しません。
セルフページで作業しているだけです。
(同じロジックを使用して)別のページからグローバルに呼び出すことはできません。
編集: "以下のプラグインは使用できません。SOプラグインを挿入してください: WordPressセッションプラグイン "
CodeIgniterセッションクラスから改作した良いWordPressプラグインがあります: WP Sessions Plugin 。
プラグインを有効にすると、テーマのどこからでも$session
オブジェクトを使用することができます(グローバルである限り$session
オブジェクト)。たとえば、$ sessionオブジェクトをheader.php
ファイルに使用するには、単に次のコードを追加します。
global $session;
あなたがプラグイン開発者であり、このプラグインをあなたのものに適応させたいのであれば、パッケージの中にstandalone versionを見つけることができます。プラグインのドキュメンテーションは、あなたのプロジェクトに適応する方法について、プラグイン開発者向けのより多くの情報を提供します。
これはテーマ開発者とプラグイン開発者の両方にとって便利な機能です。
次のように add sessionデータを追加できます。
// One value
$session->set_userdata( 'username', 'john' );
// Passing array
$array = array(
'username' => 'john',
'email' => '[email protected]'
);
$session->set_userdata( $array );
検索 セッションデータ:
$session->userdata( 'username' );
すべて取得 セッションデータ:
$session->all_userdata(); // returns array
セッションから 削除 1項目
$session->unset_userdata( 'username' );
さらにアイテムを削除する セッションから:
$array = array(
'username' => '',
'email' => ''
);
$session->unset_userdata( $array );
Flashdata を使用することもできます。これは、次のサーバー要求でのみ使用可能になり、その後自動的に消去されるセッションデータです。これらは情報またはステータスメッセージに使用すると非常に便利です(例:「商品が削除されました」)。
// Add Flashdata
$session->set_flashdata( 'item', 'value' );
// Retrieve Flashdata
$session->flashdata( 'item' );
// Preserving flashdata
// (if you need to preserve flashdata through an additional request,
// you can use this function):
$session->keep_flashdata( 'item' );
セッションを破棄する
$session->sess_destroy();
このプラグインは shortcodes もサポートしています。投稿やページにセッションデータを印刷できます。
[session key="username"]
2番目のキーに到達するには
[session key="user_data" sec_key="display_name"]
これが誰かに役立つことを願っています。
WordPressはセッションを使用しないため、セッション変数が機能しません。
実際のところ、特定の変数が定義されている場合、 WordPressは実際には自身をステートレスに保つために$_SESSION
を破棄します 。
しかし、本当にセッションを使いたい場合は、wp-config.php
ファイルの先頭にsession_start()
を追加してみてください。これは(うまくいけば)WPが起動するときはいつでもセッションを開始するでしょう、それであなたはそれからシステムの他の場所であなたの$_SESSION
変数を設定して読むことができるでしょう。