3.引数を使えるようにする

この記事は 2.とりあえず動くようにしてみる の続きです。
現状だとあまりにあれなので、引数を使えるようにする。

今までのコードは

add_shortcode('exp_notice', 'expNoticeAdd');
function expNoticeAdd($param) {
  $ret = "HOEHOE";
  return $ret;
}

$paramをせっかくつけているのでここに何か値が来た時にしっかり受け取れるようにする。
$ret = “HOEHOE”;
の部分を以下のように書き換える。

  extract(
    shortcode_atts(
      array( 'y' => '0'
            ,'m' => '0'
            ,'d' => '0'
            ,'h' => '0'
            ,'i' => '0'
            ,'s' => '0'
      )
      , $param
    )
  );
  $ret = "HOE ".$y.$m.$d.$h.$i.$s." HOE";
}

shortcode_atts という関数があるのでそれを使う。
第1パラメータにデフォルト値、第2パラメータに実際に取り込まれた引数を指定する。第1パラメータで指定されなかったものについては第2パラメータに存在しても無視されるとのこと。
とりあえず、年月日時分秒をymdhisで指定してみる。

結果が
[ exp_notice ] → 「HOE 000000 HOE」指定がないので全てデフォルトの値が入る
[ exp_notice d=5 ] → 「HOE 005000 HOE」指定があるのでその部分は指定値、その他はデフォルト値が入る
[ exp_notice y=1 m=2 d=3 h=4 i=5 s=6 ] → 「HOE 123456 HOE」全部に指定があればその値が入る
[ exp_notice y=1 moge=100 ] → 「HOE 100000 HOE」変な値が来ても無視される
とかになれば成功。

Next is [4.管理画面を作ってみる]