カスタムフィールドを使って、TablePressのテーブルを表示した案件がありました。TablePressは表示にショートコードを使いますので、Advanced custom fieldでカスタムフィールドを作り、そこにショートコードを入力しましたが、出力時にショートコードが実行(展開)されません。
そこで調べてみたところ、以下の記事を発見!今後も使うことがありそうな無いようなのでメモとして残しておきます。
https://www.sriproot.net/blog/shortcode-in-customfield-1248
echo apply_filters('the_content', get_post_meta($post->ID, 'カスタムフィールド名', true));
テンプレートでカスタムフィールドの値を取得するときに、上記のような書き方をすれば、展開されます!
追記2024
ブロックテーマで、ACFのテキストボックスに入れたショートコードを、ショートコードブロックで展開させたい場合の、functionsです。
function getads() {
$position = get_post_meta(get_the_ID(), 'ads', true); // カスタムフィールド名"ads"を呼び出す
return do_shortcode($position);
}
add_shortcode('ads', 'getads');
この状態で投稿画面のカスタムフィールドにショートコードを入れます。
![](https://midorinz.com/app/wp-content/uploads/sites/7/2019/04/8715e06d349f0b1197efbe1bab7088d1.png)
個別投稿のテンプレートには、ショートコードブロックを入れておきます。
![](https://midorinz.com/app/wp-content/uploads/sites/7/2019/04/2e01be639a38f5b14eb000a966c1155e-1024x200.png)
これで、ショートコードが展開します。下記の記事を参考にしました。
https://analyzegear.co.jp/blog/894