WordPress
カスタマイズ事例

WORDPRESS CUSTOMIZATION

記事投稿で、タイトルと本文入力のフォームの繰り返しを実装するためのカスタムフィールドプラグイン

サイト公開後、ブログ記事投稿をクライアント自身でやってもらうとき、hタグとか画像とか、もろもろhtmlを書かずに済ませるために、WordPressではカスタムフィールドというのが用意されていて、それを管理するプラグインに「アドバンストカスタムフィールド」というのがあり、100ウェブでも重宝しています。

さて、あるクライアントから「記事を章立てでやりたいんだけどどうしたらいいですか?」という質問があり、「それも何章になるかわからない」と来ました。
これ以上は増えないだろうという数だけ章のカスタムフィールドを最初から用意する方法もありますが、そうすると投稿画面がズン長くなってカッコよくないですよね。

解決方法としては、
 
最初は{タイトル、本文}が1セットだけ。ボタン一つでこのセットをいくつでも生成できるようにする
 
という感じで、後からフィールドを追加できるようにできれば良いんです。
これを解決してくれるプラグインが
Advanced Custom Fields: Repeater Field
※ 2023年4月のAdvanced Custom Fieldsのアップデートで Repeater Fieldプラグインは使えなくなりました。代わりに有償版のAdvanced Custom Fields PROにRepeater Field が標準で組み込まれています。

有償ですが相当使えます。
アドバンストカスタムフィールドの子プラグインですので、アドバンストカスタムフィールドを有効にした状態で使ってください。
 
 
記述方法:
事前にアドバンストカスタムフィールドの管理画面で、親フィールド、その中に子フィールドを用意してください。
ここでは親フィールドとして「service_block」、
子フィールドとして、タイトル「service_title」、内容部「service_content」とします。

single系テンプレートであれば、以下のように記述。

<?php if( have_rows('service_block') ){
	while ( have_rows('service_block') ){
		the_row();
		$service_title = get_sub_field('service_title');
		$service_content = get_sub_field('service_content');
?>
<div class="service-items">
	<h2><?php echo $service_title; ?></h2>
	<?php echo $service_content; ?>
</div>
	<?php }
}?>

これで、{タイトル、本文}のセットをhtml記述無しでいくらでも作ることができます。

【100ウェブ新着情報メルマガ】

WordPressカスタマイズ事例やウェブ制作ノウハウの新着情報、お役立ち情報を
リアルタイムにメルマガ配信!