WordPressでInstagram Feedというプラグインがある。
このプラグインは便利なショートコードがいくつかあって、例えば以下のようなショートコードを使用するとハッシュタグ#sunが含まれる投稿を取得することが出来る。
[instagram-feed type=hashtag hashtag="#sun"]
これを固定ページなどで使用する場合はこんな感じで挿入する。
<?php
echo do_shortcode("[instagram-feed type=hashtag hashtag=”#sun”]");
?>
で、ここからが本題。
今回やりたかったのは投稿ページでAdvanced Custom Fieldsを利用して入力した項目を変数にしてショートコード内に記載するということ。
これが意外と時間がかかってしまったので忘れないようにメモ。
結論から言うと2通りの書き方で解決。
一つ目。この書き方で#hoge_○○の部分にカスタムフィールドの値を突っ込める。
これで#hoge_○○が含まれたInstagramの投稿を取得出来る。
<?php
//カスタムフィールドの値を取得
$tag = get_field('フィールド名');
//#hoge_○○の部分に取得した値を入れる
echo do_shortcode("[instagram-feed type=hashtag hashtag=\"#hoge_$tag\"]");
?>
二つ目。一つ目に比べて余計なものが付いてたので少し記述を変更。
これで#hoge_○○_hogeが含まれたInstagramの投稿を取得出来る。
<?php
//カスタムフィールドの値を取得
$tag = get_field('フィールド名');
//#insta_○○_の部分に取得した値を入れる
echo do_shortcode('[instagram-feed type=hashtag hashtag="#hoge_'.$tag.'_hoge"]');
?>
変数の周りにアンダーバーとか#とかついているとややこしいけど、他のケースでも使えると思うので参考になれば。