Advanced Custom Fieldsには、サイト管理者が、簡単にコンテンツを構築できるための以下の機能があります。
そのうち、「真偽(True / False)」で、コンテンツを制御する2種の使いどころをご紹介します。
基本
- テキスト(Text)
- テキストエリア(Textarea)
- 範囲(Range) pro
選択系
- チェックボックス(Checkbox)
- ラジオボタン(Radio Button)
- セレクトボックス(Select)
- 真偽(True / False)
コンテンツ系
- ファイル(File)
- ギャラリー(Gallery) pro
- 画像(Image)
- oEmbed pro
- Wysiwyg エディタ(Wysiwyg Editor)
jQuery系
- カラーピッカー(Color Picker)
- デートピッカー(Date Picker)
- 日時ピッカー(Date Time Picker)
- Google Map
- 時間ピッカー(Time Picker)
レイアウト系
- Clone pro
- Flexible Content pro
- Group pro
- Repeater pro
- Tab
関連付け
- Link
- Page Link
- Post Object
- Relationship
- Taxonomy
とても便利な機能「true/false」ですが、これには2つの使いどころがあります。
【1】 ページ単位でコンテンツの有効/無効の切り替え
例えば、サイドバーの表示をON/OFFにする、などの切り替えに使うことができます。
この固定ページの時はサイドバー表示したいけど、ここでは表示したくない、など、「ページ単位での制御」が可能になります。
<?php if ( get_field( 'enable_sidebar' ) == 1 ) { ?> <?php //trueの時の処理 ?> <?php} else { <?php //falseの時の処理 ?> <?php} ?>
【2】 投稿(固定ページ)単体に対して真偽を付けて、表示したい箇所にコンテンツを表示する
こちらは逆で、あるコンテンツをサイドバーに表示する/しないの制御するやり方です。
この投稿はサイドバーに表示したいけど、この投稿は表示しなくていい、などの、同じく「ページ単位での制御」が可能です。
true値(1)を持つ投稿を照会して表示します。
<?php $posts = get_posts(array( 'meta_query' => array( array( 'key' => 'enable_sidebar', 'compare' => '==', 'value' => '1' ) ) )); if( $posts ): ?> <ul> <?php foreach( $posts as $post ): setup_postdata( $post ) ?> <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endforeach; ?> </ul> <?php wp_reset_postdata(); ?> <?php endif; ?>
ACF | True / False
https://www.advancedcustomfields.com/resources/true-false/