ワードプレスのブロックエディタで、インタビュー記事を量産するケースです。
入社日など、ACFテキストフィールドを一覧で表示したり、個別ページに表示したりする必要がありますが、ACF Proを利用してカスタムブロックを作るほどでもない。このケースの解決策として、最近は「Lazy Blocks」を使っているのですが、サーバがひ弱いのかこのプラグインを使うとメモリ不足になる案件に遭遇しまして、代替案として、ショートコードを埋め込むことにしました。
※この方法は単純なテキストフィールドに限って有効です。
ACFのフィールドをプラグイン化する(汎用性のあるコード)
こちらを参考にしました。呼び出し時に、フィールド名を指定するので汎用性があります。
function get_acf_function($params = array()) {
extract($params);
ob_start();
if($acf){
$values = get_fields();
if($values[$acf]){
echo strip_tags($values[$acf]);
}
}
return ob_get_clean();
}
add_shortcode('get_acf', 'get_acf_function');
出力時
[get_acf acf="フィールド名"]
投稿のタイトルをショートコードで出力する
こちらを参考にしました。
https://studio-iwano.com/topics/shortcode-view-title/
function get_posttitle() {
ob_start();
if (is_page() || is_single()) {
echo get_the_title();
}
$out = ob_get_contents();
ob_get_clean();
return $out;
}
add_shortcode('show_posttitle','get_posttitle');
ちなみに、wp-configで割当てメモリーを増やすことで、メモリー不足は解決できることもあります。
define( 'WP_MEMORY_LIMIT', '256M' );
こちらを512Mあたりにすると解消できる場合もあります。、上記のコードが見当たらない場合は「That’s all, stop editing! Happy blogging.」の直前に貼り付けるだけです。