【Smart Custom Fields】SCFの真偽値を使って特定の記事だけを表示させる方法

真偽値を使用することで、必要な記事のみ出力することができます。

以下の画像のように表示/非表示の中から選択して表示したい記事を指定することができるようになります。

コーディングしないような人たち(ライターさんやwordpressを直接触る人)が簡単に表示を変更することができるようになりますね。

SCFを使用した真偽値の考え方

特定のkeyの値を取得する

show_casestudy_checkedというkeyの値を取得します。ここでいう値とは特定の記事が真であるか偽であるかを取得するということです。

if文で真の場合のみ出力する命令をする

真であるか偽であるか値を取得したので、今度は真の場合はどのような処理をするか、偽の場合どのような処理をするか命令を出してあげます。

今回の場合は真の場合のみ記事を表示するように命令を出します。

SCFの真偽値の使い方

コード例

slick内のループ部分で、真偽値が真の記事のみ表示する場合のコードです。

<ul class="casestudy__slick">
  <?php
  $args = array(
    'post_type' => 'gallery',
    'posts_per_page' => -1
  );
  $query = new WP_Query($args);
  ?>
  <?php if ($query->have_posts()) : ?>
    <?php while ($query->have_posts()) : $query->the_post(); ?>
      <?php
      $check = SCF::get('show_casestudy_checked');
      if ($check == 1) :
      ?>
        <li class="casestudy__item">
          <a href="<?php the_permalink(); ?>" class="casestudy__link">
            <h3 class="casestudy__title"><span><?php the_title(); ?></span></h3>
            <p class="casestudy__img">
              <?php
              if (has_post_thumbnail()) :
                the_post_thumbnail();
              else :
              ?>
                <img src="<?php echo get_template_directory_uri(); ?>/img/no-image.svg" alt="noimage" width="328" height="246" loading="lazy" />
              <?php endif; ?>
            </p>
          </a>
        </li>
      <?php endif; ?>
    <?php endwhile;
    wp_reset_postdata(); ?>
  <?php else : ?>
    <p class="">記事が見つかりませんでした。</p>
  <?php endif; ?>
</ul>

真偽値の結果を取得する

<?php
      $check = SCF::get('show_casestudy_checked');
?>

SCF::get('show_casestudy_checked');show_casestudy_checkedというkeyの値を取得するように命令しています。

真偽値がtrueかどうか判定して条件分岐する

<?php
  $check = SCF::get('show_casestudy_checked');
  if ($check == 1) :
?>
  //コンテンツ
<?php endif; ?>

真偽値はtrueまたは1の場合”真”であることを意味します。

if文を使用して「表示する」を選択している記事のみ表示し、それ以外は表示しないようにします。