WordPressでセッション(SESSION)をPHPで使うには


暑くて暑くてエアコンの部屋から出るのが嫌だと駄々をこねているシステム担当のGucciです。

Blogサイトだけでなく、最近はWebサイトのCMSに使われることが増えているWordpress(以下WP)ですが、このWPはいろいろなPluginをインストールすることでバックエンド側の知識がなくてもそれなりのWebシステムが作れるということで非プログラマーの方がよく活用されているかと思いますが、そのWPでECサイトや会員制サイトなどを作りたいというオーダーがあった時困ってしまうのがWPはデフォルトではセッション(SESSION)をStartしていないということ。

PHPをよく使う方はそんなのPHPに「session_start()」って記述するだけだろ?って思うかもしれませんが、実はここに落とし穴があります。

WPはその特性上、全ての処理を最初に行う際にアクションフックを使っていることもあり、単純にheader.phpなどに「session_start()」って記述してもセッションはスタートしません。

解決方法としましては

実は非常に簡単なのですが、functions.phpに関数を記述してあげます。

 

//SESSION 開始
function init_session_start(){
  session_start();
}
add_action('init', 'init_session_start');

こう見るととてもシンプルで簡単なソースなんでそれでいいの?って思う人もいるかと思いますがこれだけです。

これは特に1行目に書いとくなどの必要もなく、functions.phpに書いてあればOKです。