CMS構築を目的にPHPをベースとしたWordPress、CakePHPやPEARなどオープンソースを中心に解説しています

WordPress 2.5から使えるようになったショートコード機能を使ってみます。

ショートコード機能では、任意の処理を登録し、それを記事の文中からコールして結果を表示することができます。
とりあえず、サンプルを書いてその機能を確認してみます。

ショートコードを追加してみる

まずは、ショートコードの登録なのですが、functions.phpに以下の処理を追加します。処理を追加するのはプラグインでも構いません。

function shortcode_test(){
	return "ショートコードテスト!!";
}
add_shortcode('st', 'shortcode_test');

「st」というショートコード名で関数「shortcode_test」を登録します。関数の機能としては「ショートコードテスト!!」と表示するだけの処理です。

これを管理画面の新規投稿から本文に「[st]」と記入します。

ダミーダミーダミーダミー
[st]
ダミーダミーダミーダミー

投稿を保存し、プレビューなどで確認してみると、以下のように表示されるはずです。

ダミーダミーダミーダミー
ショートコードテスト!!
ダミーダミーダミーダミー

ショートコードに引数を渡す

ショートコードを呼び出す際に、以下のように引数を渡すことができます。

[st test_val="引数テスト"]

先ほど登録した関数を修正し、引数「test_val」を受け取るように改良します。

function shortcode_test($atts){
	extract(shortcode_atts(array(
		'test_val' => 'デフォルトテスト'
	), $atts));

	return $test_val;
}

投稿で試してみると「引数テスト」が出力されます。
関数extractは初期値を設定するしくみで、例えば「[st]」というように引数をセットしなかった場合に、デフォルト値「デフォルトテスト」が出力されます。

ショートコードをテンプレートから呼び出す

投稿の中のみならず、テンプレートからショートコードを呼び出すこともできます。

echo do_shortcode('[st test_val="引数テスト"]');

関数do_shortcodeを使うことで、投稿時と同じ結果を得ることができます。

このエントリーをはてなブックマークに追加

Comment

Monthly Archives

Search