WordPressのループでカスタムフィールドでフラグを立てた投稿を除外する
なんかしばらくこの辺右往左往してたのですが、ようやく。
$args = array( 'post_type' => array("post"), 'numberposts' => '-1', 'meta_query' => array( array( 'key' => 'hidden-flg', 'value' => 1, ) ) ); $postslist = get_posts( $args );
みたいにして、まず除外するフラグが立ってる記事を取得します。
foreach($postslist as $postval){ $result[] = $postval->ID; }
そして、該当する記事のIDを配列に格納します。
$paged = get_query_var('paged'); query_posts( array( 'post_type' => array('post'), 'post__not_in' => $result, 'paged' => ( $paged ) ? intval($paged) : 1 ));
で回す。post_typeの書き換えでカスタム投稿タイプとかでもできます。地味に引っ掛かってたのが、最初のところの「’numberposts’ => ‘-1’,」で、get_postsする時は全件見に行かないと駄目ですね。ここまで書いてみて、回すごとに除外があったら、$current_postから1引くってやり方もあるのかなあと思ったんだけど、そっちはまだ試してない。

加藤 康祐 / 企画・設計
プランナー、デザイナー。加藤康祐企画設計代表。Webデザインを入り口に、2005年よりフリーランスとしてのキャリアスタート。主な仕事としてベンチャー企業でのサービスのUXデザイン、独法との防災メディアの運営、社会的養護の子どもたちの自立を支援するNPOのサポート。ラグビーと料理、最近イラスト。
是非、フォローしてください!
Twitter / Instagram
売り上げランキング: 14,705
100円
フリーランスとして働き始めるってどういうことだったのか?フリーランスとして働くってどういうことなのか?フリーランスが目指すことってなんなのか?5年間の自分の経験から書きました。(2010年執筆)