ショートコードを作るには、add_shortcode を使う。
たとえば、$_SERVER関数の内容を表示させるショートコードを作る場合、 function.phpなどに、次のように入れる。
function get_server_variable($atts) { extract(shortcode_atts(array( 'var' => '', ), $atts)); return $_SERVER[$var]; } add_shortcode('get_server', 'get_server_variable');
で、[getserver var=REMOTE_HOST] といれてやると、$_SERVER[REMOTE_HOST] の内容が表示されます。
ショートコードは、
add_shortcode('get_server', 'get_server_variable');
で追加され、この場合、[get_server]というショートコードがみつかれば、get_server_variable関数が呼び出される。ということを意味します。
で、以下の部分で引数を受け取ります。(引数がない場合は不要です。)
extract(shortcode_atts(array( 'var' => '', ), $atts));
上の例では、引数varを受け取ります。
受け取った引数varの内容は、$varに保存されるので、たとえば、varの中身がREMOTE_HOSTであれば、$_SERVER[$var]は、$_SERVER[REMOTE_HOST]として、ショートコードと置き換えられます。
return $_SERVER[$var];
引数が2つ以上ある場合は、
extract(shortcode_atts(array( 'var' => '', 'type' => 0, ), $atts)); return $_SERVER[$var];
のようにします。
あと、囲みでショートコードを使う場合、たとえばこんな感じ
[get_server var=REMOTE_HOST]####[/get_server]
で、囲みの中を取得したい場合は、次のようにします。
function get_server_variable($atts,$content='') { extract(shortcode_atts(array( 'var' => '', ), $atts)); return $content.$_SERVER[$var].$content; } add_shortcode('get_server', 'get_server_variable');
$contentの中に、囲みの中身(さっきの例だと####)が入っています。
なので、
return $content.$_SERVER[$var].$content;
で、
[get_server var=REMOTE_HOST]####[/get_server]
と表示させることが出います。