ACF Button Group レイアウト

プラグイン

カスタムフィールドを簡単に作れるプラグイン Advanced Custom Fields(ACF) の Button Group タイプを選択した際に、選択肢が多いと横幅もしくは高さが長くなってしまいます。

そこで、程よく選択肢を改行するためのカスタム方法をご紹介します。

スポンサーリンク

レイアウト見本

規定(水平)

レイアウト「水平」を選んだ際の、規定のスタイルです。
上位ブロックの幅を突き抜けても改行せず、水平方向に並べます。

※ わかりやすいように上位ブロックの背景を灰色にしています。

フレックス

上位ブロックの幅を超えない範囲で改行します。

ストレッチ

上位ブロックの幅を超えない範囲で改行し、余白がある場合は各選択肢の幅を伸ばします。

固定幅

各ラベルの幅を固定にして、上位ブロックの幅を超えない範囲で改行します。

スタイルの適用方法

ACF でクラス設定

ACF のフィールド設定欄の「ラッパーの属性」>「class」に設定したいレイアウトのクラス名を入力します。

レイアウトクラス名
フレックスflex
ストレッチstretch
固定幅fixed

ストレッチレイアウトにしたい場合は、下図のようになります。

CSS コード

投稿画面で読み込まれる CSS ファイルに以下のコードを追記します。

/* Button Group フレックス */
.acf-field.flex .acf-input .acf-button-group {
	display: flex;
	flex-wrap: wrap;
}
.acf-field.flex .acf-input label {
	flex: initial;
}

/* Button Group ストレッチ */
.acf-field.stretch .acf-input .acf-button-group {
	display: flex;
	flex-wrap: wrap;
}

/* Button Group 固定幅 */
.acf-field.fixed .acf-input .acf-button-group {
	display: inline-block;
}
.acf-field.fixed .acf-input label {
	box-sizing: content-box;
	width: 7em; /* 7文字 */
}

CSS コード中の「width: 7em;」は固定幅の幅を指定しています。
選択肢が十分に表示されるよう適宜変更してください。

完成!

【おまけ】読み込み CSS ファイル追加

ACF のカスタム CSS ファイルを追加する方法のご紹介です。
ACF 既定の CSS ファイルとカスタム CSS ファイルを分けて管理する際に便利です。

<テーマフォルダ>
  skins
    <スキンフォルダ>
      functions.php

以下のコードを上記場所にある functions.php の末尾に追記してください。

// ACF 用 CSS 読み込み
add_action( 'acf/register_scripts', 'acf_register_scripts_custom' );
if ( !function_exists( 'acf_register_scripts_custom' ) ):
function acf_register_scripts_custom() {
	wp_register_style( 'acf-custom', get_stylesheet_directory_uri(). "/acf-custom.css" );
}
endif;
add_action( 'acf/enqueue_scripts', 'acf_enqueue_scripts_custom' );
if ( !function_exists( 'acf_enqueue_scripts_custom' ) ):
function acf_enqueue_scripts_custom() {
	wp_enqueue_style( 'acf-custom' );
}
endif;

これで、ACF 規定の CSS ファイルが読み込まれるときは一緒に <テーマフォルダ>/acf-custom.css も読み込まれます。