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