前回 Exec-PHP を紹介した際に少し記載したショートコードを試しに使ってみます。
ショートコードとは?
予め作成しておいた関数を投稿などの中で呼び出す事ができる機能です。何かのプラグインを使用するときによく [ hoge ] [ /hoge ] で対象を囲ったりするアレです。ちなみに [ ] はブラケットと言いますね。
ショートコードを作ってみる
ショートコードは簡単につくれます。例えば以下のように functions.php に記述する。
function get_phpversion() {
return phpversion();
}
add_shortcode('phpversion', 'get_phpversion');
保存したら投稿欄に [ phpversion ] と記述すると
5.3.10-1ubuntu3.6
と表示される。(僕の環境の場合)
引数付きで作ってみる
先ほどの phpversion は文字列を渡すとその文字に適応する拡張モジュールのバージョンを返す。これに対応してみよう。
引数を渡すには作成する関数内で shortcode_atts 関数を使用します。この関数で指定した変数名のみ使用できます。今回はデフォルトでは何もなしにしておきます。
function get_phpversion($atts) {
extract(shortcode_atts(array(
'name' => '',
), $atts));
return $name ? phpversion($name) : phpversion();
}
add_shortcode('phpversion', 'get_phpversion');
と修正を加え、[ phpversion name='zlib' ] と記述すると
1.1
と表示される。
ショートコードで囲ってみる
良く使うショートコードで囲うタイプも作ってみる。
ショートコード用に作成する関数の第二引数に囲われた文字列が入るのでそれを加工してやるだけです。
function escape_html($atts, $contents=null) {
return htmlspecialchars($contents);
}
add_shortcode('escape', 'escape_html');
見ての通り、htmlspecialchars を通すだけのものです。これを以下のように使用してみる。
[escape]<h3>hoge</h3>[/escape]
出力結果は以下のようになる。
</p>
<h3>hoge</h3>
<p>
ちゃんと動いた。