ショートコードは引数を使えるんだって

前回、ショートコードを作ってみたら、意外と簡単に作れるというのが判りました。
もっと応用できないかなと思っていたら、引数も使えるらしいので、引数を使ったショートコードを作ってみたいと思います。

引数とは

引数(ひきすう)、パラメータ(ー)(英語:parameter)は、数学における関数やコンピュータプログラムにおける手続きにおいて、その外部と値をやりとりするための特別な変数、あるいはその変数の値のことである。
数学や最適化問題に関するそれ(「パラメータ」とカタカナで表現されることが多い)については「媒介変数」の記事を参照のこと。以下は専らコンピュータプログラミングに関して説明する。
関数・サブルーチン・メソッド等を定義する時に、外部から値を渡される特別な変数として指定されるのが仮引数。関数(等)を呼出す式において、仮引数に対応する式(あるいはその値)が実引数である。実行時には、実引数の値を仮引数が受け取る。
「引数」を「いんすう」と読む読み方もあるが、術語としては変則的に湯桶読みして「ひきすう」としている。数学分野で因数(factor)との取違えを防ぐためといった理由もある。

引用元:Wikipedia

Wikipediaで調べると上記のような感じです。よくわかりませんね…。

引数とは、簡単にいえば「プログラムに渡す値」といえばいいでしょうか?
投稿の一覧を取得する関数「get_posts()」で、表示件数を5件にしたいなという時などに使うアレです。

get_post('posts_per_page = 5')

実際に作ってみましょう

受け取った引数を表示するだけのショートコードを作ってみます。

■functions.php
function test_shortcode($atts){
	return '$attsの内容は「'.$atts.'」です';
}
add_shortcode('test_shortcode', 'test_shortcode');
■記事に投稿
[test_shortcode '引数']

すると、『$attsの内容は「Array」です』と表示されてしまいました。
どうやら引数の中身は配列で渡されるみたいです。
そりゃそうですよね、「第1引数」「第2引数」とかって言いますもんね。

そこでコードを少し修正してみます。

function test_shortcode($atts){
	return '$attsの内容は「'.$atts[0].'」です';
}

これで無事表示されるようになりました♪

ちなみに複数の引数を渡す場合は半角スペースを空けるといいみたいです。

[test_shortcode2 '引数' 'abc']
■2つの引数を表示するショートコード
function test_shortcode2($atts){
	return '$attsの内容は「'.$atts[0].'」と「'.$atts[1].'」です';
}
add_shortcode('test_shortcode2', 'test_shortcode2');

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です