Toolset Types:カスタムフィールド表示方法【6】チェックボックス(Checkbox)
以前、カスタムフィールドで複数選択のチェックボックスの使い方を紹介したことがありましたが、今回は単一のチェックボックスです。
こちらのチェックボックスは、データの真と偽を取得するために使用します。(オン:真、オフ:偽)
Toolset Typesでは、以下のような仕様になっているようです。
- チェックボックスをオンにすると、値1が返されます。
- チェックボックスがオフの場合、値は返されません。
- チェックボックスがチェックされておらず、コントロールに「0をデータベースに保存する」が設定されている場合は、0が返されます。
私は、以下のような方法で、意図通りに表示させています。
- 「注目記事」「厳選商品」「トップページに表示する」などのチェックボックスを作成する
- テンプレートに条件(チェックボックスの有無を判別)を指定したループを書く
そんなの、カスタムフィールドを使用しなくてもタグを使えばできる、という意見もありそうですが、編集画面がわかやすくなると思いますので、この方法をよく使っています。
チェックボックス(Checkbox)
例として、トップページに表示させるというチェックボックスを作成し、チェックボックスをオンにした記事のみをトップページに表示させる方法を紹介します。
「トップページに表示させる」というチェックボックスを作成
index.php や front-page.php に、以下のようなPHPを記述
該当カスタムフィールドのデータが、「1」の場合の記事を取得・表示させています。
<?php
$args = [
'post_type' => 'post',
'posts_per_page' => 5, // 表示する数
'meta_query' => [
'meta_recommend' => [
'key' => 'wpcf-recommend', // カスタムフィールド名
'value' => '1',
'type' => 'numeric',
'compare' => '='
],
],
];
?>
<?php $my_query = new WP_Query($args); ?>
<ul>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<!-- ▽ ループ開始 ▽ -->
<li>
<h3><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
<p class="published"><?php the_time(get_option('date_format')); ?></p>
</li>
<!-- △ ループ終了 △ -->
<?php endwhile; ?>
</ul>
<?php wp_reset_postdata(); ?>
簡単ですよね。これ、使用頻度が高いです。
また、イベント情報などを掲載する場合は、本日の日付を取得して、本日以降の記事のみを掲載する、などの応用も可能です。
同じチェックボックスでも、複数選択のチェックボックスの使い方の紹介は、以下のページをご覧ください。