[WORDPRESS]新しいショートコード の作成方法と使い方

投稿の本文の中でPHPを使用したい場合があります。また、同じ文章やタグを毎回書いているところを簡略化したいと思う時もあると思います。
そこで活躍するのがワードプレスの「ショートコード」という機能です。
作成は簡単です!ただ、テーマを更新した際にせっかく作ったショートコードが消えてしまわないように、子テーマを作成しておきましょう。

[WORDPRESS]テーマ更新時に変更内容が上書きされないようにする

下記ページではショートコードを使用してアプリ基本情報部分を表示しています。
ショートコード 実装サンプル

ショートコードの作り方

function.phpに下記を記載します。

function hogehoge() {
    return "template message etc";
}
add_shortcode('sample', 'hogehoge');

上記は単純なメッセージを返却する関数hogehogeを、add_shortcodeで呼び出しています。
これで、投稿本文で下記のように記述することでショートコードで指定した関数を呼び出すことができます。

[sample]

属性を持つショートコードの作成

ショートコードに属性を付けることによって、引数のように関数に値を渡すことができます。

//functions.php
function getAppInfo($atts = array()) {
  shortcode_atts(array(
    'id' => 'default',
    'lang' => 'default'
  ), $atts);
  $url = "https://itunes.apple.com/lookup?id=" . $atts['id'] . "&country=" . $atts['lang'];
  return $url;
}
add_shortcode('appinfo', 'getAppInfo');

//Post
[appinfo id="102030" lang="JP"]

関数のshortcode_attsで指定した属性をショートコード内に記載することで、引数のように値を渡すことができます。属性を渡さなかった場合は、関数内で指定した値がそのまま使用されます。
上記例だと「default」ですね。
関数内で使用する場合、上記例だと$attsに配列として格納されます。配列の値を呼び出して使用します。

以上で簡単ですが、ショートコードの作成についてまとめさせていただきました。
ある程度PHPの知識がある前提で話してしまいましたが、例えば関数内でvar_dump()すると、ショートコードを仕込んだ本文中にデータが表示されたりします。開発中は便利ですね。