WP_Queryを使用して、カテゴリごとの投稿が制限されている複数のカテゴリをクエリしますか?
-
-
どのように注文しますか?How do you want them to be ordered?
- 0
- 2010-08-25
- MikeSchinkel
-
最近公開された..カテゴリAの最新の5つ、カテゴリBの最新のものなど.recently published.. so most recent 5 of category A, most recent stuff of Category B etc..
- 0
- 2010-08-25
- Amit
-
さて、以下の私の答えを参照してくださいOkay, see my answer below
- 0
- 2010-08-25
- MikeSchinkel
-
2 回答
- 投票
-
- 2010-08-25
WP_Query()
は、 First X For Each Cat のようなものをサポートしていません.WP_Query()
の代わりに、各カテゴリでget_posts()
を使用できます.つまり、次の3回です.<?php $posts = array(): $categories = array(2,4,8); foreach($categories as $cat) { $posts[] = get_posts('numberposts=5&offset=1&category='.$cat); } ?>
$posts
には、各カテゴリの最初の5つの投稿が含まれるようになりました.WP_Query()
does not support something like First X For Each Cat. Instead ofWP_Query()
you can useget_posts()
on each of your categories, so to say three times:<?php $posts = array(): $categories = array(2,4,8); foreach($categories as $cat) { $posts[] = get_posts('numberposts=5&offset=1&category='.$cat); } ?>
$posts
now contains the first five posts for each category.-
それはデータベースへの3つのヒットではありませんか?1ヒットでできるか知りたかったので、もっと効率的だと思いました.isn't that 3 hits to the db? I wanted to know if you can do it in 1 hit cause I thought it's more efficient.
- 0
- 2010-08-25
- Amit
-
それがdbの目的ですよね?そこからデータをクエリします.dbはそのようなもののために作られています.おそらく、要求している複雑なSQLクエリを実行するよりも高速です.ものを使用することを恐れないでください.それがあなたのサイトを壊すならば、ここでそれを報告してください.well that's what the db is for, right? query the data from it. the db is made for such stuff. it probably is faster then running a complicated sql query you're asking for. don't fear to use the stuff. if it breaks your site, report it here.
- 0
- 2010-08-25
- hakre
-
mm ..わかりました、php/mysql/dbの効率についてはよくわかりません(もっと読みたい).ヒット数が少ない方が良いと確信してから、自分で結果を解析します.mm.. got it, I don't know much about php/mysql/db efficiency (would like to read more), was sure less hits is better and then parse the result myself.
- 0
- 2010-08-25
- Amit
-
まあ、本当です、一般的に多ければ多いほど少なくなります.ただし、最初に試してテストしてください.ソフトウェアが「悪い」ほど、最適化の可能性が高くなります.最終的には、より優れたソフトウェアをより速く作成し、より高速なソフトウェアを作成できるようになるためです.well, true, generally more is more and less is less. But try and test first. The "badier" your software is, the more potential it has for optimization. So better learn by doing, because in the end you will write better software faster and better write faster software.
- 1
- 2010-08-25
- hakre
-
- 2010-08-25
1回のクエリで各カテゴリの最初の5つの投稿を取得する方法がわかりません.投稿が45件しかない場合は、データベースに1回アクセスして、カテゴリごとに5件の投稿を取得するのがおそらく最も効率的なアプローチです.ただし、データベースを3回ヒットして結果を組み合わせるのは、悪いことではありません.
I don't know of a way to get the first five posts for each of the categories in a single query. If you're ever going to only have 45 posts, then hitting the database once and getting your five posts for each category is probably the most efficient approach. Hitting the database three times and combining the results isn't a bad thing though.
15件の投稿ごとに3つのカテゴリがあり、データベースに対して1つのクエリを実行して、カテゴリごとに最初の投稿を5つだけ取得したいのですが、どうすればよいですか?
それが不可能な場合、親カテゴリのすべての投稿を取得してそれらをループするか、3つの異なるクエリを作成する方が効率的ですか?