<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>understandard &#187; query_posts</title>
	<atom:link href="http://www.understandard.net/tag/query_posts/feed" rel="self" type="application/rss+xml" />
	<link>http://www.understandard.net</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 02:24:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>query_postsで指定できるパラメーター</title>
		<link>http://www.understandard.net/wordpress/wp009.html</link>
		<comments>http://www.understandard.net/wordpress/wp009.html#comments</comments>
		<pubDate>Sat, 07 Nov 2009 13:15:47 +0000</pubDate>
		<dc:creator>じゅん＠understandard</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[query_posts]]></category>

		<guid isPermaLink="false">http://www.understandard.net/?p=215</guid>
		<description><![CDATA[指定できるパラメーターがたくさんあり、細かい指定もできるので、アーカイブの表示などにとても便利に使えるquery_postsですが、覚えられないので備忘録としてまとめておきます。
基本的にWordPress Codex内 [...]

<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<ul>
								<li>
					<a href="http://www.understandard.net/wordpress/wp004.html" rel="bookmark">query_postsではまった→スッキリ</a><!-- (3)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/wordpress" title="WordPress の投稿をすべて表示" rel="category tag">WordPress</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/query_posts" rel="tag">query_posts</a>+<a href="http://www.understandard.net/tag/wordpress" rel="tag">WordPress</a>.</span>
					</div>
				</li>
							</ul>
					</dd>
</dl>
]]></description>
			<content:encoded><![CDATA[<p>指定できるパラメーターがたくさんあり、細かい指定もできるので、アーカイブの表示などにとても便利に使えるquery_postsですが、覚えられないので備忘録としてまとめておきます。</p>
<p>基本的にWordPress Codex内の<a href="http://codex.wordpress.org/Template_Tags/query_posts">query posts</a>の内容を適当和訳してものです。<br />
間違いがある可能性もあるので、ちゃんと確認したい方は本家を確認してください。<br />
うっかり間違いを見つけてしまったかたは、ぜひコメント欄等で指摘してくださいませ。</p>
<h2>カテゴリーから指定する</h2>
<p>指定したカテゴリーに属する投稿を表示。</p>
<dl>
<dt>cat</dt>
<dd>カテゴリーIDを指定。<br />
<strong>複数指定するならカンマで区切る</strong>。<br />
<strong>除外したい場合はカテゴリーIDの前にマイナスを付ける</strong>と指定できる。</dd>
<dt>category_name</dt>
<dd>カテゴリー名を指定（日本語も可）。</dd>
<dt>category__and</dt>
<dd>カテゴリーIDの配列。指定した複数のカテゴリーすべてに含まれる投稿のみを取得。</dd>
<dt>category__in</dt>
<dd>カテゴリーIDの配列。指定した複数のカテゴリーいずれかに含まれる投稿のみを取得。</dd>
<dt>category__not_in</dt>
<dd>カテゴリーIDの配列。指定したカテゴリーのいずれにもに含まれない投稿のみを取得。</dd>
</dl>
<p>配列関連はあんま使わないのでスルー。</p>
<h2>タグ引数</h2>
<p>指定したタグが付けられた投稿を表示。</p>
<dl>
<dt>tag</dt>
<dd>タグスラッグを指定。<br />
<strong>or指定するならカンマで区切る</strong>。<br />
<strong>and指定するならプラスでつなげる</strong>。</dd>
<dt>tag__and</dt>
<dd>タグIDの配列。指定した複数のタグすべてを含む投稿のみを取得。</dd>
<dt>tag__in</dt>
<dd>タグIDの配列。指定したタグのいずれかを含む投稿のみを取得。</dd>
<dt>tag_slug__and</dt>
<dd>タグスラッグの配列。指定した複数のタグすべてを含む投稿のみを取得。</dd>
<dt>tag_slug__in</dt>
<dd>タグスラッグの配列。指定したタグのいずれかを含む投稿のみを取得。</dd>
</dl>
<p>配列関連はあんま使わないのでスルー。</p>
<h2>投稿者引数</h2>
<p>投稿者を指定することで表示する投稿を制限。</p>
<dl>
<dt>author</dt>
<dd>投稿を表示させたい投稿者のIDを指定。<br />
<strong>マイナスを付ければ、そのIDの投稿を除外</strong>。</dd>
<dt>author_name</dt>
<dd>投稿を表示させたい投稿者のニックネーム（user_nicenameに入ってるもの）を指定（日本語も可）。</dd>
</dl>
<h2>投稿・固定ページ引数</h2>
<dl>
<dt>p</dt>
<dd>投稿IDで指定。</dd>
<dt>name</dt>
<dd>投稿スラッグで指定。</dd>
<dt>page_id</dt>
<dd>固定ページIDで指定。</dd>
<dt>pagename</dt>
<dd>固定ページスラッグで指定。</dd>
<dt>posts_per_page</dt>
<dd><strong>1ページに出力する投稿数</strong>。-1の場合すべての投稿を出力。</dd>
<dt>showposts</dt>
<dd><strong>出力する投稿の数</strong>。</dd>
<dt>post__in</dt>
<dd>取得する投稿IDを配列で指定。</dd>
<dt>post__not_in</dt>
<dd>除外する投稿IDを配列で指定。</dd>
<dt>post_type</dt>
<dd>投稿のデフォルトは「post」。<br />
その他に、「any」、「attachment」、「page」、「revision」が使用可能。<br />
「any」を指定すると、リビジョン以外の形式のものを取得できる。</dd>
<dt>post_status</dt>
<dd>「publish」を指定すると公開済みのものを取得。<br />
以下同様に、「pending」→レビュー待ち、「draft」→下書き、「future」→予約投稿、「private」→非公開、「trash」→ごみ箱（ver. 2.9以降）に分類されたものを取得できる。その他に、「inherit」→継承（添付ファイル、改訂履歴・自動保存のとき）がある（←よくわからん）。</dd>
<dt>post_parent</dt>
<dd>指定したIDのページの子ページを取得。</dd>
</dl>
<p>配列関連はあんま使わないのでスルー。</p>
<h2>日時引数</h2>
<p>時間範囲を指定する際に使用するパラメーター。普通に使う可能性があるのは年月日くらいかな。</p>
<dl>
<dt>hour</dt>
<dd>時間（0～23を指定可能）</dd>
<dt>minute</dt>
<dd>分（0～60を指定可能）</dd>
<dt>second</dt>
<dd>秒（0～60を指定可能）</dd>
<dt>day</dt>
<dd>日（1～31を指定可能）</dd>
<dt>monthnum</dt>
<dd>月（1から12を指定可能）</dd>
<dt>year</dt>
<dd>年（2009のように4桁での年指定）</dd>
<dt>w</dt>
<dd>週番号（0～53まで指定可能）</dd>
</dl>
<h2>ページ引数</h2>
<dl>
<dt>paged</dt>
<dd>インデックスやアーカイブページが複数わたる場合、何ページ目を表示するかを指定。</dd>
<dt>order</dt>
<dd>取得したページの並び順。デフォルト値は「DESC」。<strong>ASCが小→大、DESCが大→小</strong>。</dd>
</dl>
<h2>オフセット引数</h2>
<dl>
<dt>offset</dt>
<dd>取得投稿の先頭からスキップする投稿数を指定。</dd>
</dl>
<h2>並び替え引数</h2>
<p>取得した投稿をどの項目について並べるかを指定する。</p>
<dl>
<dt>orderby=author</dt>
<dd>投稿者で並べる</dd>
<dt>orderby=date</dt>
<dd>日付で並べる</dd>
<dt>orderby=category</dt>
<dd>カテゴリーで並べる（廃止予定？）</dd>
<dt>orderby=title</dt>
<dd>タイトルで並べる</dd>
<dt>orderby=modified</dt>
<dd>変更順に並べる</dd>
<dt>orderby=menu_order</dt>
<dd>メニュー順に並べる </dd>
<dt>orderby=parent</dt>
<dd>親順に並べる</dd>
<dt>orderby=ID</dt>
<dd>ID順に並べる</dd>
<dt>orderby=rand</dt>
<dd>ランダムに並べる</dd>
<dt>orderby=meta_value</dt>
<dd>meta valueの値で並べる。<strong>比較するためのmeta keyの値をクエリーの中に入れること</strong>。</dd>
<dt>orderby=none</dt>
<dd>並び変えない（ver. 2.8以降）</dd>
<dt>orderby=comment_count</dt>
<dd>コメント数順で並べる（ver. 2.9以降）</dd>
</dl>
<h2>カスタムフィールド引数</h2>
<p>カスタムフィールドのキー、値に基づいて投稿・ページを検索する。</p>
<dl>
<dt>meta_key=</dt>
<dd>カスタムフィールドの名前</dd>
<dt>meta_value=</dt>
<dd>カスタムフィールドの値</dd>
<dt>meta_compare=</dt>
<dd>例： query_posts(&#8216;meta_key=miles&amp;meta_compare=&lt;=&amp;meta_value=22&#8242;);<br />
上のように指定すると、比較対照は「miles」というメタキーの値。かつ、その値が22よりも小さい投稿を取得する。<br />
比較演算子のデフォルトは「=」だが、他にも「!=」、「&gt;」、「&gt;=」、「&lt;」、「&lt;=」が使用可能。</dd>
</dl>


<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<ul>
								<li>
					<a href="http://www.understandard.net/wordpress/wp004.html" rel="bookmark">query_postsではまった→スッキリ</a><!-- (3)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/wordpress" title="WordPress の投稿をすべて表示" rel="category tag">WordPress</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/query_posts" rel="tag">query_posts</a>+<a href="http://www.understandard.net/tag/wordpress" rel="tag">WordPress</a>.</span>
					</div>
				</li>
							</ul>
					</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.understandard.net/wordpress/wp009.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>query_postsではまった→スッキリ</title>
		<link>http://www.understandard.net/wordpress/wp004.html</link>
		<comments>http://www.understandard.net/wordpress/wp004.html#comments</comments>
		<pubDate>Wed, 25 Jun 2008 03:21:57 +0000</pubDate>
		<dc:creator>じゅん＠understandard</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[query_posts]]></category>

		<guid isPermaLink="false">http://www.understandard.net/?p=16</guid>
		<description><![CDATA[投稿記事一覧をquery_posts()を使って出力して、1ページに10投稿ずつ表示していく場合、単純に1ページあたりの投稿表示数を指定すれば大丈夫だと思ってました。
&#60;?php query_posts(posts [...]

<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<ul>
								<li>
					<a href="http://www.understandard.net/wordpress/wp009.html" rel="bookmark">query_postsで指定できるパラメーター</a><!-- (8.03399)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/wordpress" title="WordPress の投稿をすべて表示" rel="category tag">WordPress</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/query_posts" rel="tag">query_posts</a>+<a href="http://www.understandard.net/tag/wordpress" rel="tag">WordPress</a>.</span>
					</div>
				</li>
							</ul>
					</dd>
</dl>
]]></description>
			<content:encoded><![CDATA[<p>投稿記事一覧をquery_posts()を使って出力して、1ページに10投稿ずつ表示していく場合、単純に1ページあたりの投稿表示数を指定すれば大丈夫だと思ってました。</p>
<pre class="brush: php;">&lt;?php query_posts(posts_per_page=10); ?&gt;
&lt;?php if(have_post()) : while (have_posts()) : the_post(); ?&gt;</pre>
<p>1ページ目を見たときには全く気づかなかったんですが、2ページ目を見てみると1ページ目と同じリストが表示されてる…。<br />
どれだけページを進めても実際取得しているのは先頭の10件だけ。</p>
<p>posts_per_pageとかshowpostsとかパラメータの値を変えたり、パラメータ自体を変えたりしてみたが一向に上手くいかない。</p>
<p>調べてみると、<a href="http://ja.forums.wordpress.org/topic/127">フォーラムで同じ質問</a>している人がいました。<br />
それによると、query_posts()は現在ページの指定がないと2ページ目だろうがなんだろうが1ページ目を読み込んでしまうようで、これはquery_posts()だけではどうしようもない様子…。</p>
<p>それでもこの問題が簡単に解決する方法が解説してあったので、早速試してみました。<br />
そこに書いてあった解決法は、以下の通り</p>
<pre class="brush: php;">&lt;?php $paged = get_query_var('paged'); ?&gt;
&lt;?php query_posts(&quot;posts_per_page=10&amp;paged=$paged&quot;); ?&gt;
&lt;?php if(have_post()) : while (have_posts()) : the_post(); ?&gt;</pre>
<p>query_posts()の前で、現在のページ数を指定するpagedの値を取得して、その値をquery_postsのpagedの中に毎回入れていくってことなのかな？<br />
おかげさまで悩んでたquery_posts()のワナから抜け出し、スッキリしたのでした。</p>


<dl class="relatives">
	<dt><span>関連投稿</span></dt>
		<dd>			<ul>
								<li>
					<a href="http://www.understandard.net/wordpress/wp009.html" rel="bookmark">query_postsで指定できるパラメーター</a><!-- (8.03399)-->
					<div class="info">
						<span class="category">category: <a href="http://www.understandard.net/category/wordpress" title="WordPress の投稿をすべて表示" rel="category tag">WordPress</a></span>
						<span class="tags">tags: <a href="http://www.understandard.net/tag/query_posts" rel="tag">query_posts</a>+<a href="http://www.understandard.net/tag/wordpress" rel="tag">WordPress</a>.</span>
					</div>
				</li>
							</ul>
					</dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.understandard.net/wordpress/wp004.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
