WordPress のショートコードで引数を使う方法

目次

背景

WordPress では、あらかじめ登録してある PHP の関数を呼び出せる「[」と「]」を用いたショートコードという機能があります。

こちらの記事でショートコードの作り方は説明したのですが、ショートコードに引数を渡す方法について今回は記事にしてみました。

コード

とりあえず、次のコードを functions.php に追加します。

[code lang=’php’] function showargs_func($atts) {
extract(
shortcode_atts(
array(
‘arg1’ => ‘val1’,
‘arg3’ => ‘val3’,
‘arg2’ => ‘val2’
),
$atts
)
);
return “$arg1
$arg2
$arg3″;
}
add_shortcode(‘showargs’, ‘showargs_func’);
[/code]

続いて投稿や固定ページに次のコードを書き、表示してみましょう。

[code lang=’php’] [showargs arg2=”newarg2″] [/code]

こんな感じで見えると思います。

[code lang=’text’] val1
newarg2
val3
[/code]

解説

shortcode_atts() 関数は、ショートコードとして登録した関数に渡されるパラメータを処理するためのものです。
欠けている属性にデフォルト値を付与し、ショートコードで認識されない属性をすべて取り除くための関数ですので、渡された連想配列の引数(例では $atts)を直接コードで使う方法に比べて安全性が高まります。

第一引数に認識したい属性名とそのデフォルト値を指定し、
第二引数に解析したい連想配列の変数を指定します。

ただし、この関数の戻り値は連想配列ですので、連想名ごとにスカラー変数に変換する PHP の extract() 関数を更に使うのが一般的なようです。

上記の例では、arg1 と言う連想名を $arg1 にしています。
連想配列ですから、functions.php 側に書いた arg1, arg3, arg2 のように、順番が前後しても問題無く解析が行われます。

また、属性名(例では arg1)はハンドラ関数に渡される前に、WordPress が自動的に小文字化されることに注意しましょう。

参考:
ショートコードAPI – WordPress Codex
extract() – php

まとめ

ショートコードの便利さが引数を使える様になることで大幅にあがりますね。

10年集客し続けられるサイトを、ワードプレスで自作する9つのポイント プレゼント

【最後まで読んでくれたあなたに】

あなたは、24時間365日、自分の代わりに集客し続けてくれるWebサイトを作りたい!と思ったことはありませんか?

私はこれまで500以上のWebサイトの構築と運営のご相談に乗ってきましたが、Webサイトを作ってもうまく集客できない人には、ある一つの特徴があります。

それは、「先を見越してサイトを構築していないこと」です。
Webサイトで集客するためには、構築ではなく「どう運用するか」が重要です。

しかし、重要なポイントを知らずにサイトを自分で構築したり、業者に頼んで作ってもらってしまうと、あとから全く集客に向いていないサイトになっていたということがよく起こります。

そこで今回、期間限定で
『10年集客し続けられるサイトをワードプレスで自作する9つのポイント』
について、過去に相談に乗ってきた具体的な失敗事例と成功事例を元にしてお伝えします。

・ワードプレスを使いこなせるコツを知りたい!
・自分にピッタリのサーバーを撰びたい!
・無料ブログとの違いを知りたい!
・あとで悔しくならない初期設定をしておきたい!
・プラグイン選びの方法を知っておきたい!
・SEO対策をワードプレスで行うポイントを知りたい!
・自分でデザインできる方法を知りたい!

という方は今すぐ無料でダウンロードしてください。

期間限定で、無料公開しています。

※登録後に表示される利用条件に沿ってご利用ください

コメントを残す