ブログを運営されている方で、「これは配置しておかないとな!」というコンテンツはいくつかありますよね。例えばそういうコンテンツの中の1つで、「今見ているカテゴリの最新記事を表示」ってのがあると思います。
私のブログだったらこんなやつです
これはFacebookカテゴリの最新記事を5件表示しています。
それで、私の場合は「WP_Query」を使って上の様な表示をさせているんですけど、今見ている記事も含めて表示されてしまうと変ですよね。
「この記事のカテゴリの他の記事を見てほしいんだ!」って感じです。ですので、ここで「post__not_in」パラメータを使います。
前提を決めますと、こうです
- 今見ている記事のカテゴリに含まれている他の記事を、新しいものから5件表示する
- ただし、今見ている記事はその5件には含めない
では、見てみましょ~。
「post__not_in」パラメーターで今見ている記事を除外
私の場合は、以下のようにしています。ここでは「post__not_in」に焦点を当てています。
本題はそこですので、その他の関数なりテンプレートタグなりの説明は、ここでは割愛いたしますね。
「いや!全部理解したいわ」という場合は、
などが参考になると思います。
というわけでして、サンプルコードです。
<?php $cat = get_the_category(); $cat = $cat[0]; $my_query = new WP_Query( array( 'cat' => $cat->cat_ID, 'posts_per_page' => '5', 'post__not_in' => array($post->ID), //今見ている記事IDを動的に設定 'offset' => '0', 'orderby' => 'date', 'order' => 'DESC' )); //ここから先は、出力のプログラムを書く ?>
上のコードの太字の部分に注目ください。やっていることは、難しくないです。「post__not_in」の値は今見ている記事のIDを「array($post->ID)」によって、動的に設定することができ、そのIDの記事は出力させないよ、ってことにしています。
細かいことですけども、とても重要なパラメータですね。
まとめ
この「除外する」関連のパラメータは、今回書いた「post__not_in」以外にも、
- category__not_in
- tag__not_in
などがありますね。
詳細については、「テンプレートタグ/query posts」にサンプルコード付きでわかりやすく説明されています。
この機会に併せてご参考いただくと、「おお、なるほど」って感じでまとめて覚えられると思います。
このページを共有する