備忘録として記載しています。
current_time(‘mysql’)の時間計算
WordPressでの現在時間の取得「$effective_datetime = current_time(‘mysql’)」で取得した時間($effective_datetime)は最初のパラメータが ‘mysql’なので、この関数は date-time 文字列形式で結果を返す。従って時間を足したりできない。
時間計算に使う場合は、最初のパラメータが ‘timestamp’ とし、date()関数で表示を整える。
echo current_time('timestamp') . "<br />"; //1573380802 $effective_datetime = current_time('timestamp'); echo date('Y-m-d H:i:s',$effective_datetime) . "<br />"; //2019-11-10 10:13:22 echo date('Y-m-d H:i:s', strtotime('-1 hour', $effective_datetime)) . "<br />"; //2019-11-10 09:13:22
セッション管理
ワードプレスでsession_start()を記述したい場合、function.phpに以下のソースを記述する。
function init_session_start(){ session_start(); session_regenerate_id(); } add_action('init', 'init_session_start');
又、上記サンプルではセッションハイジャック対策として、session_regenerate_id()関数でセッションの更新を行っています。ただし、セッションは他のプラグインとの相性を確認する必要がある。
セッションのクリア
セッションの破棄も必要になるので、関数にまとめて必要な時にアクションフック又は目地的に呼び出して削除する。他のプラグインでもセッションを利用している可能性もあり「$_SESSION = array();」としないほうが良いかもしれない。
function session_clear() { //$_SESSION = array(); unset($_SESSION['']); unset($_SESSION['']); session_destroy(); }
ワードプレスのURLを出力する関数
echo get_template_directory_uri();