Tuts Plusのコードスニペット→
function link($atts, $content = null) {
extract(shortcode_atts(array(
"to" => 'http://net.tutsplus.com'
), $atts));
return '<a href="'.$to.'">'.$content.'</a>';
}
ショートコードで"$to"
を再現する方法?
私はこれを試した→
[link $to= "https://wordpress.stackexchange.com/"]
しかしこれはうまくいきませんでした。
それはちょうど[link to= "https://wordpress.stackexchange.com/"]
です。
これはextract()
が悪い理由の教科書の例です。変数がどこから来ているのか簡単にはわかりません。 extract()
はキーを変数名にして配列から変数を作成します。だからこの部分:
extract(shortcode_atts(array(
"to" => 'http://net.tutsplus.com'
), $atts));
to
キーを持つ配列を作成しています。http://net.tutsplus.com
で定義されていない場合は$atts
に設定します。 to
キーが$to
になるようにextract()
edです。
あなたはextract()
を使わずに$atts
変数を使うべきです:
function link($atts, $content = null) {
$atts = shortcode_atts(array(
"to" => 'http://net.tutsplus.com'
), $atts);
return '<a href="'.$atts['to'].'">'.$content.'</a>';
}