特定のキー【カスタムフィールド】でポストさせる。
この記事は1年以上前(2018年12月19日)に書かれたもので、内容が古い可能性がありますのでご注意ください。
特定キー(今回はチェックボックス)の成否でループをコントロールしたいなんて事あるかと思います。チェックが入ってたらこの記事出さないでとかチェックが入ってたら別処理をしたいなんてやつですね。ここら辺個人的に使う事が多いので覚書として残しておきます。
※今回もまたACFを使ってますが他のカスタムフィールド系プラグインにも応用できるかなと思います。
カスタムフィールド設定
以下のような感じでキーを設定します。フィールドタイプは真/偽(true or false)で。
コード
今回はmeta_queryがキモとなります。meta_queryは複数の検索条件を指定できます。条件式compareを使う事で複雑な検索条件をつくれるようになります。
<?php $args = array('post_type' => 'ポストタイプ名', 'paged' => $paged, 'posts_per_page' => -1, 'meta_query' => array(array('key' => 'article_check', 'compare' => '==', 'value' => '0'), 'relation'=>'OR')); ?>
<?php query_posts( $args ); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post();?>
<article>
<h3><?php the_title(); ?></h3>
<p><?php the_excerpt(); ?></p>
</article>
<?php endwhile; ?>
<?php else : ?>
<?php endif;?>
記事(今回はarticleというポストタイプ)でチェックをつけるとループ前にarticle_checkというキーが入ったポストだけ出力。
まあ、記事の公開、非公開の制御はポストタイプであれば管理画面でデフォルトでできちゃいます。今回はmeta_queryを応用すれば色々できますよっていうのを伝えたくでした、、、