WordPressの「Advanced Custom Fields」を利用して選別するループ文

WordPressのループ文ネタ、またまた続きました!
今回はプラグイン「Advanced Custom Fields」を利用して、
カテゴリーやタグに関係しない
任意の投稿だけを選別する方法です。
meta_queryのarray ( 配列 ) 文で’key’を使えば簡単に実装できるので、覚えておくと役に立つことがあるかも!

目次

カスタムフィールドって?

WPでよく使われているカスタムフィールド系プラグインといえば、
・Advanced Custom Fields
・カスタムフィールドテンプレート
があります!
使い方については省略させていただきますが(ごめんなさい!)、今回はAdvanced Custom Fieldsを使いました。

選別用のチェックボックスを用意する

チェックボックスを用意するときの注意点
・フィールド名は英語で|今回はchoice
・フィールドタイプ|チェックボックス
・選択肢も英語で
|今回はyes

ちなみに、非表示はごく少数の場合は、
デフォルト値で予めチェックが入っているようにし
非表示のものはチェックを外すようにすれば、手間が少なくなりますよ!

通常のループ表現(ノーマル投稿)

<?php query_posts( array(
	'post_type' => 'menu', //カスタム投稿名
	'taxonomy' => 'menu_category', //タクソノミータイプ
	'posts_per_page' => -1, //表示件数( -1は全投稿表示 )
)); ?>
<?php if(have_posts()): ?>
<?php while(have_posts()):the_post(); ?>
<!-- ここにループ投稿内容 -->
<?php endwhile; else: ?>
<?php endif; ?>
<?php wp_reset_query(); ?>

カスタムフィールドで選別したループ表現(ノーマル投稿)

<ul>
  <?php $args = array (
      'post_type' => 'post', //投稿名
      'taxonomy' => 'category', //タクソノミータイプ
      'posts_per_page' => -1, //表示件数( -1 = 全件 )
        'meta_query' => array(
            array(
                'key'     => 'choice',
                'value'   => 'yes',
                'compare'=>'LIKE'
            ),
        )
    );
    $myposts = get_posts( $args );
    foreach( $myposts as $post ):
    setup_postdata($post);
  ?>
		<!--ここにループする記事内容-->
		<li><?php the_title(); ?></li>
  <?php
    endforeach;
    wp_reset_postdata();
  ?>
</ul>

カスタムフィールドで選別したループ表現(カスタム投稿)

カスタム投稿名はmenuとしています。

<ul>
  <?php $args = array (
        'post_type' => 'menu', //カスタム投稿名
        'taxonomy' => 'menu_category', //タクソノミータイプ
        'posts_per_page' => -1, // 取得する投稿数
        'meta_query' => array(
            array(
                'key'     => 'choice',
                'value'   => 'yes',
                'compare'=>'LIKE'
            ),
        )
    );
    $myposts = get_posts( $args );
    foreach( $myposts as $post ):
    setup_postdata($post);
  ?>
  <li><?php the_title(); ?></li>
  <?php
    endforeach;
    wp_reset_postdata();
  ?>
</ul>
目次
閉じる