WordPressのショートコードを使って投稿内でPHP処理を行う
WordPressを運用していると、投稿内でもPHP処理や関数を行いたい場面にしばしば遭遇します。 私の場合だと画像パスを投稿内で指定していたために、ドメイン変更時に投稿全ての画像パスを打ち直す羽目になりました。
そんな時に便利なのがショートコードです。 あらかじめ記述しておいたPHP処理を投稿内で呼び出して使うことができます。
ショートコードとは
ショートコードとはWordPress投稿内でPHP処理を呼び出す方法です。 具体的にはテーマフォルダにあるfunction.PHP内に記述し、それを呼び出す形で使用します。
単純に特定の記述をそのまま呼び出すこともできますし、引数を渡してPHP処理した結果を返すこともできます。 使い方によっては複雑な処理を行うことも可能です。
ちなみに投稿内で直接PHP文を記述することもプラグインの利用やシステム変更によって可能ではあります。 しかしセキュリティ面からPHPの直打ちは好ましくなく、そのためにショートコードを使う訳です。
ショートコードの記述方法
function.PHP内にショートコードの内容、add_shorcode関数の引数にショートコード名,ショートコードファンクション名を記述します。
引数なしのショートコード
unction shortcode_func() {
return "ショートコードサンプル";
}
add_shortcode('shortcode_name', 'shortcode_func');
引数ありのショートコード
unction shortcode_func($atts) {
extract(shortcode_atts(array(
'atts' => 0,
), $atts));
return "引数は" . $atts . "です";
}
add_shortcode('shortcode_name', 'shortcode_func');
引数が複数あるショートコード
unction shortcode_func($atts) {
extract(shortcode_atts(array(
'atts1' => 0,
'atts2' => 1,
'atts3' => 2,
), $atts));
return "引数は" . $atts1 . "と" . $atts2 . "と" . $atts3 . "です";
}
add_shortcode('shortcode_name', 'shortcode_func');
ショートコードの利用方法
投稿内でショートコードを使う場合
投稿内で使う場合は[ショートコード名]と記述するだけです。これでreturnに指定した値を取得することができます。
shortcode]
引数を渡す場合は後ろに付け足します。
shortcode atts="atts"]
shortcode atts1="atts1" atts2="atts2" atts3="atts3"]
PHPファイルでショートコードを使う場合
PHPファイルでショートコードを使うことも可能ですが、その場合はdo_shorcode関数で呼び出す必要があります。