• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

「テンプレートタグ/query posts」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(後半に en:Template Tags/query_posts 14:31, 27 February 2010 Scribu 版を翻訳用に挿入、未翻訳)
(ひととおり和訳。英語版でpost_type=カスタム投稿タイプに言及しているのを反映。「引数の組み合わせ」に古い情報があるかも。)
1行目: 1行目:
{{NeedTrans|[[#Description|後半]]が|
+
==説明<span id="Description"></span>==
* <code>wp_reset_query</code>や用例などの情報も読めるよう、英語版を後半に挿入しました。前半にない情報を中心に、一部でも翻訳できる方がいたらお願いします。
+
<tt>query_posts</tt> は [[The Loop|WordPress ループ]] で表示される投稿を変更するために使います。この関数は URL で使われるのと同じ書式の各種引数(例:<tt>p=4</tt> なら 投稿ID が 4 の記事のみを表示します)を受け取ります。
* 前半も簡潔で見やすいと思うのですが、どうマージしたらいいでしょう。。}}
+
  
<!-- 2.9 時点でパラメータは最新のものに更新。 -->
+
URL から得られたクエリを変更することはトラブルの元になります。[[Conditional Tags|条件分岐タグ]] のようなページの判定を組み合わせることで、URL を一切変えることなくブログの見せ方をカスタマイズすることができます。
* 書式: <?php query_posts('arguments'); ?>
+
* 説明: ループ内でクエリを変更するために使う。詳しくは、[[The_Loop|WordPress ループ]]についてのページを参照。
+
* 位置: ループ内
+
* 引数:
+
** 整数が指定できる場合は、特定の投稿を除くためにマイナスの値も使える。たとえば query_posts('cat=-3') とした場合、ID3のカテゴリーのみをクエリから除く。
+
** 各引数に複数の値を指定する場合、コンマに続けて追加する。
+
** 複数の引数を組み合わせる場合は、他のタグと同じく引数の間に&を挿入する。
+
  
==== カテゴリー引数 ====
+
よくある利用例:
指定したIDや名前のカテゴリーに分類された投稿を取得する。
+
*  フロントページに任意の記事を表示する(管理画面の 設定 > 表示設定 で固定ページを指定することもできます)。
* cat (整数)- カテゴリーIDを指定。
+
* 指定した期間の投稿すべてを表示する。
* category_name (文字列)- カテゴリー名を指定(日本語も可)。
+
* フロントページに最新の投稿(だけ)を表示する。
* category__and(配列)- カテゴリーIDの配列。指定した複数のカテゴリーすべてに含まれる投稿のみを取得。
+
* 投稿の表示順序を変更する。
* category__in(配列)- カテゴリーIDの配列。指定した複数のカテゴリーいずれかに含まれる投稿のみを取得。
+
* 特定のカテゴリーに含まれる記事だけを表示する。
* category__not_in(配列)- カテゴリーIDの配列。指定したカテゴリーのいずれにもに含まれない投稿のみを取得。
+
* 1つまたは複数のカテゴリーに含まれる記事を除く。
  
==== タグ引数 ====
+
==重要事項<span id="Important_note"></span>==
指定したタグがつけられた投稿を取得する。
+
query_posts 関数はメインの WordPress ループ''だけ''を変更するためのものです。新たなループを作るためのものではありません。メインループの他にループが必要な場合は、別の [[関数リファレンス/WP Query|WP_Query]] オブジェクトを作ってください。メインループの他で query_posts を使用すると、メインループが不正な状態になり期待する結果が得られません。
* tag (文字列)- タグスラッグを指定。
+
* tag__and(配列)- タグIDの配列。指定した複数のタグすべてを含む投稿のみを取得。
+
* tag__in(配列)- タグIDの配列。指定したタグのいずれかを含む投稿のみを取得。
+
* tag_slug__and(配列)- タグスラッグの配列。指定した複数のタグすべてを含む投稿のみを取得。
+
* tag_slug__in(配列)- タグスラッグの配列。指定したタグのいずれかを含む投稿のみを取得。
+
 
+
==== 投稿者引数 ====
+
指定したIDや名前の投稿者による投稿を取得する。
+
* author (整数)- 投稿者のIDを指定。負の数(-3 など)に指定した場合、その投稿者を除外。
+
* author_name (文字列)- 投稿者のニックネームを指定(日本語も可)。
+
 
+
==== 投稿・固定ページ引数 ====
+
指定したIDや名前の投稿・固定ページを取得する。
+
* p (整数)- 投稿ID。
+
* name (文字列)- 投稿スラッグ。
+
* page_id (整数)- 固定ページID。
+
* pagename (文字列)- 固定ページスラッグ。
+
* posts_per_page (整数)- 1ページに表示する投稿数。-1 の場合すべてを表示。
+
* showposts (整数)- 出力する投稿の数。'''posts_per_page の導入により非推奨になった。'''
+
* post__in(配列)- <code> array(5,12,2,14,7)</code> のように含める投稿の ID を配列で指定。
+
* post__not_in(配列)- <code> array(6,2,8)</code> のように含めない投稿の ID を配列で指定。
+
* post_type - page([[Pages|固定ページ]])、post(投稿)、attachment(添付ファイル)、revision(変更履歴)のいずれか。
+
* post_status - publish(公開済み)、pending(レビュー待ち)、draft(下書き)、future(スケジュール済み)、private(非公開)、trash(ゴミ箱入り)、inherit([[関数リファレンス/get_children|get_children]]/[[:en:Function_Reference/get_children|en]] 参照)のいずれか。trash の値は[[Version 2.9|バージョン 2.9]] 以降のみ。
+
* post_parent (整数)- 取得したい固定ページの親ページ ID。
+
 
+
==== 先頭固定投稿引数 ====
+
投稿の先頭固定表示は[[Version 2.7|バージョン 2.7]] から導入。
+
* array('post__in'=>get_option('sticky_posts')) - すべての先頭固定投稿を配列として返す。
+
* caller_get_posts=1 - 返される配列内で、先頭固定投稿を普通の順序で含める(先頭に固定しない)。
+
 
+
==== 日時引数 ====
+
それぞれ、その日時の間に投稿された投稿を取得する。マイナスの値は使えない。
+
* hour (整数)- 0〜23
+
* minute (整数)- 0〜60
+
* second (整数)- 0〜60
+
* day (整数)- 1〜31
+
* monthnum (整数)- 1〜12
+
* year (整数)- 例: 2009
+
* w (整数)- 0〜53 で年間のうちどの週かを選ぶ。[http://dev.mysql.com/doc/refman/5.1/ja/date-and-time-functions.html#function_week MySQL WEEK command Mode=1] を使っている。
+
 
+
==== ページング引数 ====
+
* paged (整数)- インデックスや月別・カテゴリー別アーカイブページが複数ページにわたる場合の、表示するページ数を指定。
+
* posts_per_page (整数)- 1ページに出力する投稿数。-1の場合すべての投稿を出力。
+
* order (ASC/DESC)- 取得したページの並び順。デフォルト値は「DESC」。
+
 
+
==== オフセット引数 ====
+
* offset (整数)- 取得投稿の先頭からスキップする投稿数を指定。
+
 
+
==== 並び替え引数 ====
+
* orderby
+
** author
+
** date
+
** category - 使えない?
+
** title
+
** modified
+
** menu_order
+
** parent
+
** ID
+
** rand - ランダム
+
** meta_value - [[#Custom_Field_Parameters|カスタムフィールド引数]]に meta_key=XXX が必須
+
** none - 順番指定なし([[Version 2.8|バージョン 2.8]] 以降のみ)
+
** comment_count([[Version 2.9|バージョン 2.9]] 以降のみ)
+
 
+
<div id="Custom_Field_Parameters">
+
==== カスタムフィールド引数 ====
+
</div>
+
** meta_key=
+
** meta_value=
+
** meta_compare= - meta_value= をテストする演算子。デフォルトは '=' で, '!='、'>'、'>='、'<'、'<=' も使える。
+
 
+
==== コード記述例 ====
+
* 記述例1:
+
2008年5月に投稿された、カテゴリー ID 1 と 3 の投稿タイトルを1ページに5件ずつ表示。
+
 
+
<pre><nowiki><?php if (have_posts()) :  query_posts('&posts_per_page=5&cat=1,3&monthnum=5&year=2008');  ?>
+
  <?php while (have_posts()) : the_post(); ?>
+
    <h2><?php the_title(); ?></h2>
+
<?php endwhile; endif; ?></nowiki></pre>
+
 
+
* 記述例2:
+
カテゴリー ID 2 と 6 のいずれにも含まれないすべての投稿のタイトルをリストとして表示。
+
 
+
<pre><nowiki><?php if (have_posts()) :  query_posts(array('category__not_in' => array(2,6))); ?>
+
<ul>
+
<?php while (have_posts()) : the_post(); ?>
+
    <li><?php the_title(); ?></li>
+
<?php endwhile; endif; ?>
+
</ul></nowiki></pre>
+
 
+
----
+
 
+
==Description <span id="Description"></span>==
+
<tt>Query_posts</tt> can be used to control which posts show up in [[The Loop]].  It accepts a variety of parameters in the same format as used in your URL (e.g. <tt>p=4</tt> to show only post of ID number 4).
+
 
+
Why go through all the trouble of changing the query that was meticulously created from your given URL?  You can customize the presentation of your blog entries by combining it with page logic (like the [[Conditional Tags]]) -- all without changing any of the URLs.
+
 
+
Common uses might be to:
+
*  Display only a single post on your homepage (a single Page can be done via Settings -> Reading).
+
*  Show all posts from a particular time period.
+
*  Show the latest post (only) on the front page.
+
*  Change how posts are ordered.
+
*  Show posts from only one category.
+
*  Exclude one or more categories.
+
 
+
==Important note <span id="Important_note"></span>==
+
The query_posts function is intended to be used to modify the main page Loop ''only''. It is not intended as a means to create secondary Loops on the page. If you want to create separate Loops outside of the main one, you should create separate [[関数リファレンス/WP Query|WP_Query]] objects and use those instead. Use of query_posts on Loops other than the main one can result in your main Loop becoming incorrect and possibly displaying things that you were not expecting.
+
  
The query_posts function overrides and replaces the main query for the page. To save your sanity, do not use it for any other purpose.
+
query_posts 関数はページのメインクエリを上書きし、置き換えます。他の目的で使用してはいけません。
  
==Usage <span id="">Usage</span>==
+
==使い方<span id="Usage"></span>==
  
 
<pre>
 
<pre>
140行目: 26行目:
  
 
//The Loop
 
//The Loop
if ( have_posts() ) : while ( have_posts() ) : the_post();
+
if ( have_posts() ) :  
..
+
  while ( have_posts() ) :  
endwhile; else:
+
    the_post();
..
+
      ..
 +
  endwhile;  
 +
else:
 +
  ..
 
endif;
 
endif;
  
152行目: 41行目:
 
</pre>
 
</pre>
  
===Usage Note <span id="Usage_Note"></span>===
+
===注意事項<span id="Usage_Note"></span>===
  
Place a call to <tt>query_posts()</tt> in one of your [[テンプレート|Template]] files before [[The Loop]] begins. The <tt>wp_query</tt> object will generate a new SQL query using your parameters. When you do this, WordPress ignores the other parameters it receives via the URL (such as page number or category). If you want to preserve that information, you can use the <tt>$query_string</tt> global variable in the call to <tt>query_posts()</tt>.
+
<tt>query_posts()</tt> [[テンプレート|テンプレート]] ファイル内で [[The Loop|WordPress ループ]] が始まる前に記述します。<tt>wp_query</tt> オブジェクトは与えられた引数から新しい SQL クエリを作ります。このとき、WordPress は(ページ番号やカテゴリーのような)URL から得られた引数を無視します。もしその情報が必要なら、<tt>query_posts()</tt> の引数としてグローバル変数の <tt>$query_string</tt> を与えます。
  
For example, to set the display order of the posts without affecting the rest of the query string, you could place the following before [[The Loop]]:
+
例えば、他のクエリ引数に影響を与えずに投稿の表示順序だけを指定したいなら [[The Loop|WordPress ループ]] の前に以下のように記述します:
  
 
<pre>
 
<pre>
163行目: 52行目:
 
</pre>
 
</pre>
  
When using <tt>query_posts</tt> in this way, the quoted portion of the argument ''must'' begin with an ampersand (&).
+
この形式で <tt>query_posts</tt> を使う場合は、二重引用符で囲んだ引数をアンド記号(&)で始めてください。
 
+
  
==Parameters <span id=""></span>==
+
==引数<span id=""></span>==
This is not an exhaustive list yet. It is meant to show some of the more common things possible with setting your own queries.
+
ここでの記述例がすべてではありません。引数を組み合わせることで、より実用的なクエリが可能になります。
  
===Category Parameters <span id="Category_Parameters"></span>===
+
===カテゴリー引数<span id="Category_Parameters"></span>===
Show posts only belonging to certain categories.
+
指定したカテゴリーに分類された投稿を取得する。
* <tt>cat</tt> - must use cat ids
+
* <tt>cat</tt> (整数)- カテゴリーIDを指定。コンマ区切りにした複数IDの文字列も指定可能。
* <tt>category_name</tt>
+
* <tt>category_name</tt> (文字列)- カテゴリー名を指定(日本語も可)。
* <tt>category__and</tt> - must use cat ids
+
* <tt>category__and(配列</tt>- カテゴリーIDの配列。指定した複数のカテゴリーすべてに含まれる投稿のみを取得。
* <tt>category__in</tt> - must use cat ids
+
* <tt>category__in(配列)</tt>- カテゴリーIDの配列。指定した複数のカテゴリーいずれかに含まれる投稿のみを取得。
* <tt>category__not_in</tt> - must use cat ids
+
* <tt>category__not_in(配列)</tt>- カテゴリーIDの配列。指定した複数のカテゴリーのいずれにもに含まれない投稿のみを取得。
  
'''Show One Category by ID'''
+
'''IDでカテゴリーを指定'''
  
Display posts from only one category ID (and any children of that category):
+
IDで指定したカテゴリー(とその子孫カテゴリー)に含まれる投稿のみを取得します:
  
 
  query_posts('cat=4');
 
  query_posts('cat=4');
  
'''Show One Category by Name'''
+
'''名前でカテゴリーを指定'''
  
Display posts from only one category by name:
+
名前で指定したカテゴリーに含まれる投稿のみを取得します:
  
 
  query_posts('category_name=Staff Home');
 
  query_posts('category_name=Staff Home');
  
'''Show Several Categories by ID'''
+
'''IDで複数のカテゴリーを指定'''
  
Display posts from several specific category IDs:
+
IDで指定した複数のカテゴリーのいずれかに含まれる投稿を取得します:
  
 
  query_posts('cat=2,6,17,38');
 
  query_posts('cat=2,6,17,38');
  
'''Exclude Posts Belonging to Only One Category'''
+
'''IDで指定したカテゴリーを除く'''
  
Show all posts ''except'' those from a category by prefixing its ID with a '-' (minus) sign.
+
'-'(マイナス)記号を前につけたカテゴリーID ''以外'' の投稿を取得します:
  
 
  query_posts('cat=-3');
 
  query_posts('cat=-3');
  
This excludes any post that belongs to category 3. <!--There is a proviso however: it will exclude all the posts that belong ''only'' to category 3. If a post belongs to another category as well, it will still be picked up.-->
+
これはカテゴリーID 3 に含まれる投稿をすべて除きます。<!--There is a proviso however: it will exclude all the posts that belong ''only'' to category 3. If a post belongs to another category as well, it will still be picked up.-->
  
'''Multiple Category Handling'''
+
'''複数カテゴリーの指定方法'''
  
Display posts that are in multiple categories.  This shows posts that are in both categories 2 and 6:
+
IDで指定した複数のカテゴリーすべてに含まれるカテゴリーを取得します。以下はカテゴリーID 2 6 の両方に含まれる投稿を取得:
  
 
  query_posts(array('category__and' => array(2,6)));
 
  query_posts(array('category__and' => array(2,6)));
  
To display posts from either category 2 OR 6, you could use <tt>cat</tt> as mentioned above, or by using <tt>category__in</tt> (note this does not show posts from any children of these categories):
+
カテゴリーID 2 または 6 に含まれる投稿を取得するには、前述の <tt>cat</tt> <tt>category__in</tt>(こちらは子孫カテゴリーを含みません)を使います:
  
 
  query_posts(array('category__in' => array(2,6)));
 
  query_posts(array('category__in' => array(2,6)));
  
You can also exclude multiple categories this way:
+
以下の指定では複数のカテゴリーのいずれかに含まれる投稿を除くことができます:
  
 
  query_posts(array('category__not_in' => array(2,6)));
 
  query_posts(array('category__not_in' => array(2,6)));
  
===Tag Parameters <span id="Tag_Parameters"></span>===
+
===タグ引数<span id="Tag_Parameters"></span>===
Show posts associated with certain tags.
+
指定したタグがつけられた投稿を取得する。
*  <tt>tag</tt>
+
*  <tt>tag</tt> (文字列)- タグスラッグを指定。
*  <tt>tag_id</tt> - must use tag ids
+
*  <tt>tag_id</tt> (整数)- タグ ID を指定。コンマ区切りにした複数IDの文字列も指定可能。
*  <tt>tag__and</tt> - must use tag ids
+
*  <tt>tag__and</tt> (配列)- タグ ID の配列。指定した複数のタグのすべてを含む投稿のみを取得。
*  <tt>tag__in</tt> - must use tag ids
+
*  <tt>tag__in</tt> (配列)- タグ ID の配列。指定した複数のタグのいずれかを含む投稿のみを取得。
*  <tt>tag__not_in</tt> - must use tag ids
+
*  <tt>tag__not_in</tt> (配列)- タグ ID の配列。指定した複数のタグのいずれも含まない投稿のみを取得。
*  <tt>tag_slug__and</tt>
+
*  <tt>tag_slug__and</tt> (配列)- タグスラッグの配列。指定した複数のタグすべてを含む投稿のみを取得。
*  <tt>tag_slug__in</tt>
+
*  <tt>tag_slug__in</tt> (配列)- タグスラッグの配列。指定した複数のタグのいずれかを含む投稿のみを取得。
  
'''Fetch posts for one tag'''
+
'''指定した1つのタグを含む投稿を取得'''
 
  query_posts('tag=cooking');
 
  query_posts('tag=cooking');
  
'''Fetch posts that have either of these tags'''
+
'''指定したタグのいずれかを含む投稿を取得'''
  
 
  query_posts('tag=bread,baking');
 
  query_posts('tag=bread,baking');
  
'''Fetch posts that have all three of these tags:
+
'''指定した3つのタグすべてを含む投稿を取得'''
  
 
  query_posts('tag=bread+baking+recipe');
 
  query_posts('tag=bread+baking+recipe');
  
'''Multiple Tag Handling'''
+
'''複数タグの指定方法'''
  
Display posts that are tagged with both tag id 37 and tag id 47:
+
タグID 37 47 の両方を含む投稿を取得します:
  
 
  query_posts(array('tag__and' => array(37,47));
 
  query_posts(array('tag__and' => array(37,47));
  
To display posts from either tag id 37 or 47, you could use <tt>tag</tt> as mentioned above, or explicitly specify by using <tt>tag__in</tt>:
+
タグID 37 または 47 のいずれかを含む投稿を取得するには、前述の <tt>tag</tt> <tt>tag__in</tt> を使います:
  
 
  query_posts(array('tag__in' => array(37,47));
 
  query_posts(array('tag__in' => array(37,47));
  
Display posts that do not have any of the two tag ids 37 and 47:
+
タグID 37 47 のいずれも含まない投稿を取得します:
  
 
  query_posts(array('tag__not_in' => array(37,47));
 
  query_posts(array('tag__not_in' => array(37,47));
  
The <tt>tag_slug__in</tt> and <tt>tag_slug__and</tt> behave much the same, except match against the tag's slug.
+
<tt>tag_slug__in</tt> <tt>tag_slug__and</tt> はタグスラッグを指定する他は上記と同様です。
  
Also see [http://boren.nu/archives/2007/10/01/taxonomy-intersections-and-unions/ Ryan's discussion of Tag intersections and unions].
+
[http://boren.nu/archives/2007/10/01/taxonomy-intersections-and-unions/ Ryan's discussion of Tag intersections and unions] も参照してください。
  
===Author Parameters <span id="Author_Parameters"></span>===
+
===投稿者引数<span id="Author_Parameters"></span>===
You can also restrict the posts by author.
+
指定したIDや名前の投稿者による投稿を取得する。
*  <tt>author=3</tt>
+
*  <tt>author=3</tt> (整数)- 取得する投稿者のIDを指定。
*  <tt>author=-3</tt> - exclude author id 3 posts
+
*  <tt>author=-3</tt> (整数)- 除外する投稿者のIDを指定。
*  <tt>author_name=Harriet</tt>
+
*  <tt>author_name=Harriet</tt> (文字列)- 投稿者のニックネームを指定(日本語も可)。
  
'''Note:''' <tt>author_name</tt> operates on the <tt>user_nicename</tt> field, whilst <tt>author</tt> operates on the author id field.
+
'''注意:''' <tt>author_name</tt> <tt>user_nicename</tt> フィールドの値を指定します。<tt>author</tt> には ID を指定します。
  
'''Display all [[Pages]] for author=1, in title order, with no sticky posts tacked to the top:'''  
+
'''author=1 のすべての [[Pages|固定ページ]] をタイトル順, 先頭固定表示無しで表示します:'''  
 
  query_posts('caller_get_posts=1&author=1&post_type=page&post_status=publish&orderby=title&order=ASC');
 
  query_posts('caller_get_posts=1&author=1&post_type=page&post_status=publish&orderby=title&order=ASC');
  
===Post & Page Parameters <span id="Post_.26_Page_Parameters"></span>===
+
===記事・固定ページ引数<span id="Post_.26_Page_Parameters"></span>===
 +
指定したIDや名前の記事・固定ページを取得する。
 +
*  <tt>'p' => 27</tt> (整数)- 取得する投稿 ID を指定。
 +
*  <tt>'name' => 'about-my-life'</tt> (文字列)- 取得する [[ブログ入門#Post Slugs|投稿スラッグ]] を指定。
 +
*  <tt>'page_id' => 7</tt> (整数)- 取得する固定ページ ID を指定。
 +
*  <tt>'pagename' => 'about'</tt> (文字列)- 取得する固定ページスラッグを指定。タイトルではありません。
 +
*  <tt>'posts_per_page' => 1</tt> (整数)- 1ページに表示する記事数。<tt>'posts_per_page' => 3</tt> なら3件取得。<tt>'posts_per_page' => -1</tt> ならすべての投稿を取得。
 +
*  <tt>'showposts' => 1</tt> (整数)- 出力する投稿の数。<tt>'showposts' => 3</tt> なら3件取得。<tt>'showposts' => -1</tt> ならすべての投稿を取得。'''posts_per_page の導入により非推奨'''
 +
*  <tt>'post__in' => array(5,12,2,14,7)</tt> (配列)- 取得する投稿の ID を配列で指定。
 +
*  <tt>'post__not_in' => array(6,2,8)</tt> (配列)- 取得しない投稿の ID を配列で指定。
 +
*  <tt>'post_type' => 'page'</tt> - 取得する投稿タイプを page([[Pages|固定ページ]])、post(投稿)、attachment(添付ファイル)、revision(変更履歴)のいずれかで指定。初期値は <tt>post</tt>。<tt>any</tt> はリビジョン以外の投稿タイプを取得します。[[Version 3.0|バージョン 3.0]] 以降から movie などのカスタム投稿タイプも指定できます。
 +
*  <tt>'post_status' => 'publish'</tt> - 取得するステータスを publish(公開済み)、pending(レビュー待ち)、draft(下書き)、future(スケジュール済み)、private(非公開)、trash(ゴミ箱入り)、inherit([[関数リファレンス/get_children|get_children]]/[[:en:Function_Reference/get_children|en]] 参照)のいずれかで指定。trash の値は[[Version 2.9|バージョン 2.9]] 以降のみ有効。
 +
*  <tt>'post_parent' => 93</tt> (整数)- 取得する固定ページの親ページ ID を指定。
  
Retrieve a single post or page.
+
'''通常の記事とカスタム投稿タイプ movie の両方を取得:'''
 +
query_posts( array( 'post_type' => array('post', 'movie') ) );
  
*  <tt>'p' => 27</tt> - use the post ID to show that post
+
===先頭固定投稿引数<span id="Sticky_Post_Parameters"></span>===
*  <tt>'name' => 'about-my-life'</tt> - query for a particular post that has this [[Introduction to Blogging#Post Slugs|Post Slug]]
+
投稿の先頭固定表示は [[Version 2.7|バージョン 2.7]] から導入。先頭固定と設定された投稿は ''caller_get_posts=1'' を指定しない限り他の投稿よりも先に表示されます。
*  <tt>'page_id' => 7</tt> - query for just Page ID 7
+
* <tt>array('post__in'=>get_option('sticky_posts'))</tt> - すべての先頭固定投稿を配列として返す。
*  <tt>'pagename' => 'about'</tt> - note that this is not the page's title, but the page's path
+
* <tt>caller_get_posts=1</tt> - 先頭固定投稿を通常の順序にする(先頭に固定しない)。
*  <tt>'posts_per_page' => 1</tt> - use <tt>'posts_per_page' => 3</tt> to show 3 posts. Use <tt>'posts_per_page' => -1</tt> to show all posts
+
*  <tt>'showposts' => 1</tt> - use <tt>'showposts' => 3</tt> to show 3 posts. Use <tt>'showposts' => -1</tt> to show all posts.  '''Deprecated in favor of posts_per_page'''
+
* <tt>'post__in' => array(5,12,2,14,7)</tt> - inclusion, lets you specify the post IDs to retrieve
+
*  <tt>'post__not_in' => array(6,2,8)</tt> - exclusion, lets you specify the post IDs NOT to retrieve
+
* <tt>'post_type' => 'page'</tt> - returns [[Pages]]; defaults to value of <tt>post</tt>; can be <tt>any</tt>, <tt>attachment</tt>, <tt>page</tt>, <tt>post</tt>, or <tt>revision</tt>. <tt>any</tt> retrieves any type except revisions.
+
*  <tt>'post_status' => 'publish'</tt> - returns publish works.  Also could use <tt>pending</tt>, <tt>draft</tt>, <tt>future</tt>, <tt>private</tt>, <tt>trash</tt>.  For <tt>inherit</tt> see [[関数リファレンス/get_children|get_children]]/[[:en:Function Reference/get_children|en]].  Status of <tt>trash</tt> added with [[Version 2.9]].
+
*  <tt>'post_parent' => 93</tt> - return just the child Pages of Page 93.
+
  
===Sticky Post Parameters <span id="Sticky_Post_Parameters"></span>===
+
'''1件目の先頭固定投稿を取得''':
Sticky posts first became available with WordPress Version 2.7.  Posts that are set as Sticky will be displayed before other posts in a query, unless excluded with the ''caller_get_posts=1'' parameter.
+
* <tt>array('post__in'=>get_option('sticky_posts'))</tt> - returns array of all sticky posts
+
* <tt>caller_get_posts=1</tt> - To exclude sticky posts being included at the beginning of posts returned, but the sticky post will still be returned in the natural order of that list of posts returned.
+
 
+
'''To return just the first sticky post''':
+
 
  $sticky=get_option('sticky_posts') ;  
 
  $sticky=get_option('sticky_posts') ;  
 
  query_posts('p=' . $sticky[0]);
 
  query_posts('p=' . $sticky[0]);
  
or
+
または
  
 
<pre>
 
<pre>
303行目: 192行目:
 
</pre>
 
</pre>
  
Note: the second method returns only the more recent sticky post; if there are not sticky posts, it returns the last post published.
+
注意:2つ目の方法は最新の先頭固定投稿を1件取得します。先頭固定投稿がない場合は最新の投稿を1件取得します。
  
'''To return just the first sticky post or nothing''':
+
'''最新の先頭固定投稿だけを対象にする''':
 
<pre>
 
<pre>
 
$sticky = get_option('sticky_posts');
 
$sticky = get_option('sticky_posts');
315行目: 204行目:
 
query_posts($args);
 
query_posts($args);
 
if($sticky[0]) {
 
if($sticky[0]) {
   // insert here your stuff...
+
   // ここに処理を記述
 
}
 
}
 
</pre>
 
</pre>
  
 
+
'''すべての先頭固定投稿を除く''':
'''To exclude all sticky posts from the query''':
+
 
  query_posts(array("post__not_in" =>get_option("sticky_posts")));
 
  query_posts(array("post__not_in" =>get_option("sticky_posts")));
  
'''Return ALL posts with the category, but don't show sticky posts at the top.  The 'sticky posts' will still show in their natural position (e.g. by date):'''
+
'''指定カテゴリーに含まれるすべての投稿を、先頭固定なしで取得します。先頭固定投稿は通常の順序(例:日付順)になります:'''
 
  query_posts('caller_get_posts=1&posts_per_page=3&cat=6');  
 
  query_posts('caller_get_posts=1&posts_per_page=3&cat=6');  
  
'''Return posts with the category, but exclude sticky posts completely, and adhere to paging rules:
+
'''指定カテゴリーに含まれるすべての投稿から、先頭固定投稿を除き、ページングありで取得:'''
 
<pre>
 
<pre>
 
<?php
 
<?php
341行目: 229行目:
 
</pre>
 
</pre>
  
===Time Parameters <span id="Time_Parameters"></span>===
+
===日時引数<span id="Time_Parameters"></span>===
Retrieve posts belonging to a certain time period.
+
それぞれ、その日時の間に投稿された投稿を取得する。マイナスの値は使えない。
*  <tt>hour=</tt> - hour (from 0 to 23)
+
*  <tt>hour=</tt> (整数)- (0〜23)
*  <tt>minute=</tt> - minute (from 0 to 60)
+
*  <tt>minute=</tt> (整数)-(0〜59)
*  <tt>second=</tt> - second (0 to 60)
+
*  <tt>second=</tt> (整数)- (0〜59)
*  <tt>day=</tt> - day of the month (from 1 to 31)
+
*  <tt>day=</tt> (整数)- (1〜31)
*  <tt>monthnum=</tt> - month number (from 1 to 12)
+
*  <tt>monthnum=</tt> (整数)- (1〜12)
*  <tt>year=</tt> - 4 digit year (e.g. 2009)
+
*  <tt>year=</tt> (整数)- 4桁の年 (例:2009)
*  <tt>w=</tt> - week of the year (from 0 to 53) and uses the [http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_week MySQL WEEK command Mode=1].
+
*  <tt>w=</tt> (整数)- 0〜53 で年間のうちどの週かを選ぶ。[http://dev.mysql.com/doc/refman/5.1/ja/date-and-time-functions.html#function_week MySQL WEEK command Mode=1] を使っている。
  
'''Returns posts for just the current date:'''
+
'''今日の投稿を取得:'''
 
  $today = getdate();
 
  $today = getdate();
 
  query_posts('year=' .$today["year"] .'&monthnum=' .$today["mon"] .'&day=' .$today["mday"] );
 
  query_posts('year=' .$today["year"] .'&monthnum=' .$today["mon"] .'&day=' .$today["mday"] );
  
'''Returns posts dated December 20:'''
+
'''12月20日の投稿を取得:'''
 
  query_posts( 'monthnum=12&day=20' );
 
  query_posts( 'monthnum=12&day=20' );
  
'''Return posts for posts for March 1 to March 15, 2009:'''
+
'''2009年3月15日の投稿を取得:'''
 
<pre>
 
<pre>
 
<?php
 
<?php
372行目: 260行目:
 
</pre>
 
</pre>
  
'''Return posts from the last 30 days:'''
+
'''最近30日間の投稿を取得:'''
 
<pre>
 
<pre>
 
<?php
 
<?php
386行目: 274行目:
 
</pre>   
 
</pre>   
  
'''Return posts 30 to 60 days old'''
+
'''30〜60日前の投稿を取得'''
 
<pre>
 
<pre>
 
<?php
 
<?php
400行目: 288行目:
 
</pre>
 
</pre>
  
===Pagination Parameters <span id="Pagination_Parameters"></span>===
+
===ページング引数<span id="Pagination_Parameters"></span>===
*  <tt>nopaging=true</tt> - will disable pagination, displaying all posts
+
*  <tt>nopaging=true</tt> - ページングを無効にする。
*  <tt>posts_per_page=10</tt> - number of posts to show per page
+
*  <tt>posts_per_page=10</tt> (整数)- 1ページに出力する投稿数。-1の場合すべての投稿を出力。
*  <tt>paged=2</tt> - show the posts that would normally show up just on page 2 when using the "Older Entries" link. You should set this to <tt>get_query_var( 'paged' )</tt> if you want your query to work with pagination.
+
*  <tt>paged=2</tt> (整数)- インデックスや月別・カテゴリー別アーカイブページンなどが複数ページにわたる場合の、表示するページ番号を指定。
*  <tt>order=ASC</tt> - show posts in chronological order, DESC to show in reverse order (the default)
+
*  <tt>order=ASC</tt> (ASC/DESC)- 取得したページの並び順。デフォルト値は「DESC」。
  
===Offset Parameter <span id="Offset_Parameter"></span>===
+
===オフセット引数<span id="Offset_Parameter"></span>===
You can ''displace'' or pass over one or more initial posts which would normally be collected by your query through the use of the offset parameter.
+
取得される投稿の先頭から指定した件数をスキップします。
 +
* <tt>offset</tt> (整数)- 投稿の先頭からスキップする件数を指定。
  
The following will display the 5 posts which follow the most recent (1):  
+
以下は、最新の投稿(1件)に続く5件の投稿を取得します:  
  
 
  query_posts('posts_per_page=5&offset=1');
 
  query_posts('posts_per_page=5&offset=1');
  
===Orderby Parameters <span id="Orderby_Parameters"></span>===
+
===並び替え引数<span id="Orderby_Parameters"></span>===
Sort retrieved posts by this field.
+
指定したフィールドで投稿を並び替えて取得する。
 
*  <tt>orderby=author</tt>
 
*  <tt>orderby=author</tt>
 
*  <tt>orderby=date</tt>
 
*  <tt>orderby=date</tt>
 
*  <tt>orderby=title</tt>
 
*  <tt>orderby=title</tt>
 
*  <tt>orderby=modified</tt>
 
*  <tt>orderby=modified</tt>
*  <tt>orderby=menu_order</tt> '''Note:''' Only works with [[Pages]].
+
*  <tt>orderby=menu_order</tt> '''注意:''' [[Pages|固定ページ]] のみ有効。
 
*  <tt>orderby=parent</tt>
 
*  <tt>orderby=parent</tt>
 
*  <tt>orderby=ID</tt>
 
*  <tt>orderby=ID</tt>
 
*  <tt>orderby=rand</tt>
 
*  <tt>orderby=rand</tt>
*  <tt>orderby=meta_value</tt> '''Note:''' A <tt>meta_key=keyname</tt> must also be present in the query.
+
*  <tt>orderby=meta_value</tt> '''注意:''' [[#Custom_Field_Parameters|カスタムフィールド引数]]として <tt>meta_key=keyname</tt> が指定されていること。
*  <tt>orderby=none</tt> - no order (available with [[Version 2.8]])
+
*  <tt>orderby=none</tt> - 順番指定なし([[Version 2.8|バージョン 2.8]] 以降のみ)
*  <tt>orderby=comment_count</tt> - (available with [[Version 2.9]])
+
*  <tt>orderby=comment_count</tt> - [[Version 2.9|バージョン 2.9]] 以降のみ)
  
===Order Parameters <span id="Order_Parameters"></span>===
+
===並び順引数<span id="Order_Parameters"></span>===
Designates the ascending or descending order of the ORDERBY parameter.
+
並び替え引数の並び順を昇順または降順で指定。
*  <tt>order=ASC</tt> - ascending order, lowest to highest value
+
*  <tt>order=ASC</tt> - 昇順。小さい値から大きい値の順。
*  <tt>order=DESC</tt> - descending order, highest to lowest value
+
*  <tt>order=DESC</tt> - 降順。大きい値から小さい値の順。
 
+
===Custom Field Parameters <span id="Custom_Field_Parameters"></span>===
+
Retrieve posts (or [[Pages]]) based on a custom field key or value. 
+
  
 +
===カスタムフィールド引数<span id="Custom_Field_Parameters"></span>===
 +
カスタムフィールドのキーまたは値を元に、投稿(または [[Pages|固定ページ]]) を取得。 
 
*  <tt>meta_key=</tt>
 
*  <tt>meta_key=</tt>
 
*  <tt>meta_value=</tt>
 
*  <tt>meta_value=</tt>
*  <tt>meta_compare=</tt> - operator to test the <tt>meta_value=</tt>, default is '=', with other possible values of '!=', '>', '>=', '<', or '<='
+
*  <tt>meta_compare=</tt> - meta_value で指定された値を比較する演算子。デフォルトは '=' で, '!=''>''>=''<''<=' も使える。
  
Returns posts with custom fields matching both a key of 'color' AND a value of 'blue':  
+
キーが 'color' で値が 'blue' のカスタムフィールドを持つ投稿を取得:  
 
  query_posts('meta_key=color&meta_value=blue');  
 
  query_posts('meta_key=color&meta_value=blue');  
  
Returns posts with a custom field key of 'color', regardless of the custom field value:
+
キーが 'color' のカスタムフィールドを持つ投稿を取得(値は問わない):  
 
  query_posts('meta_key=color');  
 
  query_posts('meta_key=color');  
  
Returns posts where the custom field value is 'color', regardless of the custom field key:
+
値が 'blue' のカスタムフィールドを持つ投稿を取得(キーは問わない):  
  query_posts('meta_value=color');
+
  query_posts('meta_value=blue');
  
Returns any [[Pages|Page]] where the custom field value is 'green', regardless of the custom field key:
+
値が 'green' のカスタムフィールドを持つ [[Pages|固定ページ]] を取得(キーは問わない):
 
  query_posts('post_type=page&meta_value=green');
 
  query_posts('post_type=page&meta_value=green');
  
Returns both posts and [[Pages]] with a custom field key of 'color' where the custom field value IS NOT EQUAL TO 'blue':
+
キーが 'color' で値が 'blue' でないカスタムフィールドを持つ記事と [[Pages|固定ページ]] の両方を取得:
 
  query_posts('post_type=any&meta_key=color&meta_compare=!=&meta_value=blue');
 
  query_posts('post_type=any&meta_key=color&meta_compare=!=&meta_value=blue');
  
Returns posts with custom field key of 'miles' with a custom field value that is LESS THAN OR EQUAL TO 22.  Note the value 99 will be considered greater than 100 as the data is stored as strings, not numbers. 
+
キーが 'miles' で値が 22 以下のカスタムフィールドを持つ投稿を取得。注意:値は数値ではなく文字列として扱われているため「99」は「100」より大きくなります。
 
  query_posts('meta_key=miles&meta_compare=<=&meta_value=22');
 
  query_posts('meta_key=miles&meta_compare=<=&meta_value=22');
  
===Combining Parameters <span id="Combining_Parameters"></span>===
+
===引数の組み合わせ<span id="Combining_Parameters"></span>===
You may have noticed from some of the examples above that you combine parameters with an ampersand (&), like so:  
+
引数はアンド記号(&)を使って複数組み合わせて指定することができます:  
  
 
  query_posts('cat=3&year=2004');
 
  query_posts('cat=3&year=2004');
  
Posts for category 13, for the current month on the main page:
+
「最新の投稿」ページで、カテゴリーID が 13 かつ今月の投稿を取得する:
  
 
  if (is_home()) {
 
  if (is_home()) {
468行目: 356行目:
 
  }
 
  }
  
At 2.3 this combination will return posts belong to both Category 1 AND 3, showing just two (2) posts, in descending order by the title:
+
[[Version 2.3|バージョン 2.3]] では、以下の組み合わせは カテゴリーID 1 3 に含まれる投稿を2件、タイトルの降順で取得します:
  
 
   query_posts(array('category__and'=>array(1,3),'posts_per_page'=>2,'orderby'=>title,'order'=>DESC));
 
   query_posts(array('category__and'=>array(1,3),'posts_per_page'=>2,'orderby'=>title,'order'=>DESC));
  
 
+
[[Version 2.3|バージョン 2.3]] と [[Version 2.5|バージョン 2.5]] では、カテゴリーID が 1 "apples" を含む投稿を取得することが期待される。
In 2.3 and 2.5 one would expect the following to return all posts that belong to category 1 and is tagged "apples"
+
  
 
  query_posts('cat=1&tag=apples');
 
  query_posts('cat=1&tag=apples');
  
A bug prevents this from happening. See [http://trac.wordpress.org/ticket/5433 Ticket #5433]. A workaround is to search for several tags using +
+
バグ:カテゴリーとタグを同時に指定する場合は「+」で同じタグを2つ指定してください。参照 [http://trac.wordpress.org/ticket/5433 Ticket #5433]
  
 
  query_posts('cat=1&tag=apples+apples');
 
  query_posts('cat=1&tag=apples+apples');
  
This will yield the expected results of the previous query. Note that using 'cat=1&tag=apples+oranges' yields expected results.
+
注意:'cat=1&tag=apples+oranges' は期待する結果にはなりません。
  
==Examples <span id="Examples"></span>==
+
==コード記述例<span id="Examples"></span>==
  
===Exclude Categories From Your Home Page <span id="Exclude_Categories_From_Your_Home_Page"></span>===
+
===「最新の投稿」ページから指定カテゴリーを除く<span id="Exclude_Categories_From_Your_Home_Page"></span>===
  
Placing this code in your <tt>index.php</tt> file will cause your home page to display posts from all categories ''except'' category ID 3.
+
<tt>index.php</tt> ファイルに以下のコードを書くと、カテゴリーID が 3 ''以外の'' 投稿を表示します。
  
 
<pre>
 
<pre>
497行目: 384行目:
 
</pre>
 
</pre>
  
You can also add some more categories to the exclude-list (tested with WP 2.1.2):
+
複数のカテゴリーID を指定することができます([[Version 2.1.2|バージョン 2.1.2]] で検証済)。
 
+
 
<pre>
 
<pre>
 
<?php
 
<?php
507行目: 393行目:
 
</pre>
 
</pre>
  
===Retrieve a Particular Post <span id="Retrieve_a_Particular_Post"></span>===
+
===特定の記事を取得<span id="Retrieve_a_Particular_Post"></span>===
To retrieve a particular post, you could use the following:
+
特定の記事を取得する:
  
 
<pre>
 
<pre>
 
<?php
 
<?php
// retrieve one post with an ID of 5
+
// 記事ID が 5 の投稿を取得する
 
query_posts('p=5');       
 
query_posts('p=5');       
 
?>
 
?>
 
</pre>
 
</pre>
  
If you want to use the ''Read More'' functionality with this query, you will need to set the global <tt>$more</tt> variable to 0.
+
''続きを読む'' を表示したい場合は、グローバル変数 <tt>$more</tt> 0 にします。
  
 
<pre>
 
<pre>
 
<?php
 
<?php
// retrieve one post with an ID of 5
+
// 記事ID が 5 の投稿を取得する
 
query_posts('p=5');
 
query_posts('p=5');
 
        
 
        
 
global $more;
 
global $more;
// set $more to 0 in order to only get the first part of the post
+
// 投稿の始めの部分のみ表示するため $more 0 にする
 
$more = 0;  
 
$more = 0;  
  
 
// the Loop
 
// the Loop
 
while (have_posts()) : the_post();  
 
while (have_posts()) : the_post();  
   // the content of the post
+
   // 記事の本文
 
   the_content('Read the full post &raquo;');  
 
   the_content('Read the full post &raquo;');  
 
endwhile;
 
endwhile;
536行目: 422行目:
 
</pre>
 
</pre>
  
===Retrieve a Particular Page <span id="Retrieve_a_Particular_Page"></span>===
+
2008年5月に投稿された、カテゴリー ID 1 と 3 の投稿タイトルを1ページに5件ずつ表示する:
To retrieve a particular page, you could use the following:
+
 
 +
<pre><nowiki><?php if (have_posts()) :  query_posts('posts_per_page=5&cat=1,3&monthnum=5&year=2008');  ?>
 +
  <?php while (have_posts()) : the_post(); ?>
 +
    <h2><?php the_title(); ?></h2>
 +
<?php endwhile; endif; ?></nowiki></pre>
 +
 
 +
カテゴリー ID 2 と 6 のいずれにも含まれないすべての投稿のタイトルをリストとして表示する:
 +
 
 +
<pre><nowiki><?php if (have_posts()) :  query_posts(array('category__not_in' => array(2,6))); ?>
 +
<ul>
 +
<?php while (have_posts()) : the_post(); ?>
 +
    <li><?php the_title(); ?></li>
 +
<?php endwhile; endif; ?>
 +
</ul></nowiki></pre>
 +
 
 +
===特定の固定ページを取得<span id="Retrieve_a_Particular_Page"></span>===
 +
特定の固定ページを取得する:
  
 
<pre>
 
<pre>
 
<?php
 
<?php
query_posts('page_id=7');      //retrieves page 7 only
+
query_posts('page_id=7');      // 投稿ID が 7 の固定ページのみ取得
 
?>
 
?>
 
</pre>
 
</pre>
or
+
 
 +
または
 +
 
 
<pre>
 
<pre>
 
<?php
 
<?php
query_posts('pagename=about'); //retrieves the about page only
+
query_posts('pagename=about'); // 投稿スラッグが about の固定ページのみ取得
 
?>
 
?>
 
</pre>
 
</pre>
  
For child pages, the slug of the parent and the child is required, separated by a slash. For example:
+
子ページの場合は、親ページと子ページの投稿スラッグをスラッシュ(/)で区切って指定します:
  
 
<pre>
 
<pre>
 
<?php
 
<?php
query_posts('pagename=parent/child'); // retrieve the child page of a parent
+
query_posts('pagename=parent/child'); // 「parent」の子ページ「child」を取得
 
?>
 
?>
 
</pre>
 
</pre>
  
===Passing variables to query_posts <span id="Passing_variables_to_query_posts"></span>===
+
===query_posts に変数を与える<span id="Passing_variables_to_query_posts"></span>===
You can pass a variable to the query with two methods, depending on your needs. As with other examples, place these above your Loop:
+
query_posts に変数を与える方法は2通りあります。どちらを使用してもかまいません。[[The Loop|WordPress ループ]] の前に記述してください:
  
==== Example 1 <span id=" Example_1"></span>====
+
==== 記述例 1 <span id=" Example_1"></span>====
  
In this example, we concatenate the query before running it. First assign the variable, then concatenate and then run it. Here we're pulling in a category variable from elsewhere.
+
この例は、query_posts を実行する前にクエリ文字列を連結します。まず変数に値を代入し、変数と文字列を結合して、実行します。ここではカテゴリーID を変数で与えることにします。
  
 
<pre>
 
<pre>
 
  <?php
 
  <?php
  $categoryvariable=$cat; // assign the variable as current category
+
  $categoryvariable=$cat; // 現在のカテゴリーID を変数に代入
  $query= 'cat=' . $categoryvariable. '&orderby=date&order=ASC'; // concatenate the query
+
  $query= 'cat=' . $categoryvariable. '&orderby=date&order=ASC'; // クエリを連結
  query_posts($query); // run the query
+
  query_posts($query); // クエリを実行
 
  ?>
 
  ?>
 
</pre>
 
</pre>
  
==== Example 2 <span id="Example_2"></span>====
+
==== 記述例 2 <span id="Example_2"></span>====
 
+
In this next example, the double quotes tell PHP to treat the enclosed as an expression. For this example, we are getting the current month and the current year, and telling <tt>query_posts</tt> to bring us the posts for the current month/year, and in this case, listing in ascending order so we get the oldest post at the top of the page.
+
  
 +
次の例では、二重引用符を使って PHP に式を評価させます。まず、現在の年・月を取得し、<tt>query_posts</tt> で公開日が現在の年・月に該当する投稿を取得します。投稿の並び順は日付の昇順で、公開日の古い順に取得します。
 +
 
<pre>
 
<pre>
 
<?php
 
<?php
585行目: 489行目:
 
query_posts("cat=22&year=$current_year&monthnum=$current_month&order=ASC");
 
query_posts("cat=22&year=$current_year&monthnum=$current_month&order=ASC");
 
?>
 
?>
<!-- put your loop here -->
+
<!-- ここでループ処理 -->
 
</pre>
 
</pre>
  
==== Example 3 <span id="Example_3"></span>====
+
==== 記述例 3 <span id="Example_3"></span>====
  
This example explains how to generate a complete list of posts, dealing with pagination. We can use the default <tt>$query_string</tt> telling <tt>query_posts</tt> to bring us a full posts listing.  We can also modify the <tt>posts_per_page</tt> query argument from -1 to the number of posts you want to show on each page; in this last case, you'll probably want to use [[テンプレートタグ/posts_nav_link|posts_nav_link()]] to navigate the generated archive.
+
この例では、ページングを使ってすべての投稿を取得する場合を説明します。デフォルトの <tt>$query_string</tt> を使って <tt>query_posts</tt> ですべての投稿を取得させることができます。<tt>posts_per_page</tt> の値には -1 か各ページに表示したい投稿の数を指定します。後者の場合には [[テンプレートタグ/posts_nav_link|posts_nav_link()]] でページを移動する手段を提供しましょう。
  
 
<pre>
 
<pre>
596行目: 500行目:
 
query_posts($query_string.'&posts_per_page=-1');
 
query_posts($query_string.'&posts_per_page=-1');
 
while(have_posts()) { the_post();
 
while(have_posts()) { the_post();
<!-- put your loop here -->
+
<!-- ここでループ処理 -->
 
}
 
}
 
?>
 
?>
 
</pre>
 
</pre>
  
==== Example 4 <span id="Example_4"></span>====
+
==== 記述例 4 <span id="Example_4"></span>====
  
If you don't need to use the <tt>$query_string</tt> variable, another method exists that is more clear and readable, in some more complex cases. This method puts the parameters into an array. The same query as in Example 2 above could be done like this:
+
<tt>$query_string</tt> 変数を使わずに、引数を配列に入れる方法もあります。例えば、記述例 2 のクエリは以下のようになります:
  
 
<pre>
 
<pre>
614行目: 518行目:
 
</pre>
 
</pre>
  
As you can see, with this approach, every variable can be put on its own line, for easier reading.
+
この方法は、変数ごとに1行ずつ記述すると読み易くなります。
  
=== Preserving the Original Query (Pagination etc.)<span id="Preserving_the_Original_Query_.28Pagination_etc..29"></span>===
+
=== オリジナルクエリの保持(ページングなど)<span id="Preserving_the_Original_Query_.28Pagination_etc..29"></span>===
By default running query_posts will completely overwrite all existing query variables on the current page. Pagination, categories dates etc. will be lost and only the variables you pass into query_posts will be used.
+
デフォルトでは query_posts を実行すると、引数で指定した変数を除きページング,カテゴリー,日付などの現在のページのクエリ変数はすべて上書きされます。
  
If you want to preserve the original query you can merge the original query array into your parameter array:
+
オリジナルのクエリを保持したい場合は、query_poats の引数にオリジナルクエリの配列をマージしてください:
  
 
<pre>
 
<pre>
631行目: 535行目:
  
  
==Usage Tips<span id="Usage_Tips"></span>==
+
==使い方のヒント<span id="Usage_Tips"></span>==
The "Blog pages show at most" parameter in Settings > Reading can influence your results.  To overcome this, add the 'posts_per_page' parameter.  For example:
+
管理画面の 設定 > 表示設定 にある "1ページに表示する最大投稿数" パラメータで通常の表示件数を指定できます。これを変更するには 'posts_per_page' 引数を使います:
 
<pre>
 
<pre>
query_posts('category_name=The Category Name&posts_per_page=-1');  //returns ALL from the category
+
query_posts('category_name=The Category Name&posts_per_page=-1');  // 指定カテゴリーに含まれるすべての投稿を取得
 
</pre>
 
</pre>
  
==Resources<span id="Resources"></span>==
+
==リソース<span id="Resources"></span>==
 
* [http://www.ifelse.co.uk/archives/2005/04/08/query_posts-redux/ If..Else - Query Post Redux]
 
* [http://www.ifelse.co.uk/archives/2005/04/08/query_posts-redux/ If..Else - Query Post Redux]
 
* [http://www.ifelse.co.uk/archives/2005/04/10/make-wp-show-only-one-post-on-the-front-page/ If..Else - Make WordPress Show Only one Post on the Front Page]
 
* [http://www.ifelse.co.uk/archives/2005/04/10/make-wp-show-only-one-post-on-the-front-page/ If..Else - Make WordPress Show Only one Post on the Front Page]
649行目: 553行目:
 
{{原文|Template Tags/query posts|83483}}<!-- 14:31, 27 February 2010 Scribu 版 -->
 
{{原文|Template Tags/query posts|83483}}<!-- 14:31, 27 February 2010 Scribu 版 -->
  
==Related==
+
==関連==
  
 
{{Query Tags}}
 
{{Query Tags}}

2010年4月14日 (水) 01:44時点における版

説明

query_postsWordPress ループ で表示される投稿を変更するために使います。この関数は URL で使われるのと同じ書式の各種引数(例:p=4 なら 投稿ID が 4 の記事のみを表示します)を受け取ります。

URL から得られたクエリを変更することはトラブルの元になります。条件分岐タグ のようなページの判定を組み合わせることで、URL を一切変えることなくブログの見せ方をカスタマイズすることができます。

よくある利用例:

  • フロントページに任意の記事を表示する(管理画面の 設定 > 表示設定 で固定ページを指定することもできます)。
  • 指定した期間の投稿すべてを表示する。
  • フロントページに最新の投稿(だけ)を表示する。
  • 投稿の表示順序を変更する。
  • 特定のカテゴリーに含まれる記事だけを表示する。
  • 1つまたは複数のカテゴリーに含まれる記事を除く。

重要事項

query_posts 関数はメインの WordPress ループだけを変更するためのものです。新たなループを作るためのものではありません。メインループの他にループが必要な場合は、別の WP_Query オブジェクトを作ってください。メインループの他で query_posts を使用すると、メインループが不正な状態になり期待する結果が得られません。

query_posts 関数はページのメインクエリを上書きし、置き換えます。他の目的で使用してはいけません。

使い方

<?php

//The Query
query_posts('posts_per_page=5');

//The Loop
if ( have_posts() ) : 
  while ( have_posts() ) : 
    the_post();
      ..
  endwhile; 
else:
  ..
endif;

//Reset Query
wp_reset_query();

?>

注意事項

query_posts()テンプレート ファイル内で WordPress ループ が始まる前に記述します。wp_query オブジェクトは与えられた引数から新しい SQL クエリを作ります。このとき、WordPress は(ページ番号やカテゴリーのような)URL から得られた引数を無視します。もしその情報が必要なら、query_posts() の引数としてグローバル変数の $query_string を与えます。

例えば、他のクエリ引数に影響を与えずに投稿の表示順序だけを指定したいなら WordPress ループ の前に以下のように記述します:

global $query_string;
query_posts($query_string . "&order=ASC");

この形式で query_posts を使う場合は、二重引用符で囲んだ引数をアンド記号(&)で始めてください。

引数

ここでの記述例がすべてではありません。引数を組み合わせることで、より実用的なクエリが可能になります。

カテゴリー引数

指定したカテゴリーに分類された投稿を取得する。

  • cat (整数)- カテゴリーIDを指定。コンマ区切りにした複数IDの文字列も指定可能。
  • category_name (文字列)- カテゴリー名を指定(日本語も可)。
  • category__and(配列)- カテゴリーIDの配列。指定した複数のカテゴリーすべてに含まれる投稿のみを取得。
  • category__in(配列)- カテゴリーIDの配列。指定した複数のカテゴリーいずれかに含まれる投稿のみを取得。
  • category__not_in(配列)- カテゴリーIDの配列。指定した複数のカテゴリーのいずれにもに含まれない投稿のみを取得。

IDでカテゴリーを指定

IDで指定したカテゴリー(とその子孫カテゴリー)に含まれる投稿のみを取得します:

query_posts('cat=4');

名前でカテゴリーを指定

名前で指定したカテゴリーに含まれる投稿のみを取得します:

query_posts('category_name=Staff Home');

IDで複数のカテゴリーを指定

IDで指定した複数のカテゴリーのいずれかに含まれる投稿を取得します:

query_posts('cat=2,6,17,38');

IDで指定したカテゴリーを除く

'-'(マイナス)記号を前につけたカテゴリーID 以外 の投稿を取得します:

query_posts('cat=-3');

これはカテゴリーID 3 に含まれる投稿をすべて除きます。

複数カテゴリーの指定方法

IDで指定した複数のカテゴリーすべてに含まれるカテゴリーを取得します。以下はカテゴリーID 2 と 6 の両方に含まれる投稿を取得:

query_posts(array('category__and' => array(2,6)));

カテゴリーID 2 または 6 に含まれる投稿を取得するには、前述の catcategory__in(こちらは子孫カテゴリーを含みません)を使います:

query_posts(array('category__in' => array(2,6)));

以下の指定では複数のカテゴリーのいずれかに含まれる投稿を除くことができます:

query_posts(array('category__not_in' => array(2,6)));

タグ引数

指定したタグがつけられた投稿を取得する。

  • tag (文字列)- タグスラッグを指定。
  • tag_id (整数)- タグ ID を指定。コンマ区切りにした複数IDの文字列も指定可能。
  • tag__and (配列)- タグ ID の配列。指定した複数のタグのすべてを含む投稿のみを取得。
  • tag__in (配列)- タグ ID の配列。指定した複数のタグのいずれかを含む投稿のみを取得。
  • tag__not_in (配列)- タグ ID の配列。指定した複数のタグのいずれも含まない投稿のみを取得。
  • tag_slug__and (配列)- タグスラッグの配列。指定した複数のタグすべてを含む投稿のみを取得。
  • tag_slug__in (配列)- タグスラッグの配列。指定した複数のタグのいずれかを含む投稿のみを取得。

指定した1つのタグを含む投稿を取得

query_posts('tag=cooking');

指定したタグのいずれかを含む投稿を取得

query_posts('tag=bread,baking');

指定した3つのタグすべてを含む投稿を取得

query_posts('tag=bread+baking+recipe');

複数タグの指定方法

タグID 37 と 47 の両方を含む投稿を取得します:

query_posts(array('tag__and' => array(37,47));

タグID 37 または 47 のいずれかを含む投稿を取得するには、前述の tagtag__in を使います:

query_posts(array('tag__in' => array(37,47));

タグID 37 と 47 のいずれも含まない投稿を取得します:

query_posts(array('tag__not_in' => array(37,47));

tag_slug__intag_slug__and はタグスラッグを指定する他は上記と同様です。

Ryan's discussion of Tag intersections and unions も参照してください。

投稿者引数

指定したIDや名前の投稿者による投稿を取得する。

  • author=3 (整数)- 取得する投稿者のIDを指定。
  • author=-3 (整数)- 除外する投稿者のIDを指定。
  • author_name=Harriet (文字列)- 投稿者のニックネームを指定(日本語も可)。

注意: author_nameuser_nicename フィールドの値を指定します。author には ID を指定します。

author=1 のすべての 固定ページ をタイトル順, 先頭固定表示無しで表示します:

query_posts('caller_get_posts=1&author=1&post_type=page&post_status=publish&orderby=title&order=ASC');

記事・固定ページ引数

指定したIDや名前の記事・固定ページを取得する。

  • 'p' => 27 (整数)- 取得する投稿 ID を指定。
  • 'name' => 'about-my-life' (文字列)- 取得する 投稿スラッグ を指定。
  • 'page_id' => 7 (整数)- 取得する固定ページ ID を指定。
  • 'pagename' => 'about' (文字列)- 取得する固定ページスラッグを指定。タイトルではありません。
  • 'posts_per_page' => 1 (整数)- 1ページに表示する記事数。'posts_per_page' => 3 なら3件取得。'posts_per_page' => -1 ならすべての投稿を取得。
  • 'showposts' => 1 (整数)- 出力する投稿の数。'showposts' => 3 なら3件取得。'showposts' => -1 ならすべての投稿を取得。posts_per_page の導入により非推奨
  • 'post__in' => array(5,12,2,14,7) (配列)- 取得する投稿の ID を配列で指定。
  • 'post__not_in' => array(6,2,8) (配列)- 取得しない投稿の ID を配列で指定。
  • 'post_type' => 'page' - 取得する投稿タイプを page(固定ページ)、post(投稿)、attachment(添付ファイル)、revision(変更履歴)のいずれかで指定。初期値は postany はリビジョン以外の投稿タイプを取得します。バージョン 3.0 以降から movie などのカスタム投稿タイプも指定できます。
  • 'post_status' => 'publish' - 取得するステータスを publish(公開済み)、pending(レビュー待ち)、draft(下書き)、future(スケジュール済み)、private(非公開)、trash(ゴミ箱入り)、inherit(get_children/en 参照)のいずれかで指定。trash の値はバージョン 2.9 以降のみ有効。
  • 'post_parent' => 93 (整数)- 取得する固定ページの親ページ ID を指定。

通常の記事とカスタム投稿タイプ movie の両方を取得:

query_posts( array( 'post_type' => array('post', 'movie') ) );

先頭固定投稿引数

投稿の先頭固定表示は バージョン 2.7 から導入。先頭固定と設定された投稿は caller_get_posts=1 を指定しない限り他の投稿よりも先に表示されます。

  • array('post__in'=>get_option('sticky_posts')) - すべての先頭固定投稿を配列として返す。
  • caller_get_posts=1 - 先頭固定投稿を通常の順序にする(先頭に固定しない)。

1件目の先頭固定投稿を取得:

$sticky=get_option('sticky_posts') ; 
query_posts('p=' . $sticky[0]);

または

$args = array(
	'posts_per_page' => 1,
	'post__in'  => get_option('sticky_posts'),
	'caller_get_posts' => 1
);
query_posts($args);

注意:2つ目の方法は最新の先頭固定投稿を1件取得します。先頭固定投稿がない場合は最新の投稿を1件取得します。

最新の先頭固定投稿だけを対象にする:

$sticky = get_option('sticky_posts');
$args = array(
	'posts_per_page' => 1,
	'post__in'  => $sticky,
	'caller_get_posts' => 1
);
query_posts($args);
if($sticky[0]) {
   // ここに処理を記述
}

すべての先頭固定投稿を除く:

query_posts(array("post__not_in" =>get_option("sticky_posts")));

指定カテゴリーに含まれるすべての投稿を、先頭固定なしで取得します。先頭固定投稿は通常の順序(例:日付順)になります:

query_posts('caller_get_posts=1&posts_per_page=3&cat=6'); 

指定カテゴリーに含まれるすべての投稿から、先頭固定投稿を除き、ページングありで取得:

<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$sticky=get_option('sticky_posts');
$args=array(
   'cat'=>3,
   'caller_get_posts'=>1,
   'post__not_in' => $sticky,
   'paged'=>$paged,
   );
query_posts($args);
?>

日時引数

それぞれ、その日時の間に投稿された投稿を取得する。マイナスの値は使えない。

  • hour= (整数)- 時 (0〜23)
  • minute= (整数)-分 (0〜59)
  • second= (整数)- 秒 (0〜59)
  • day= (整数)- 日 (1〜31)
  • monthnum= (整数)- 月 (1〜12)
  • year= (整数)- 4桁の年 (例:2009)
  • w= (整数)- 0〜53 で年間のうちどの週かを選ぶ。MySQL WEEK command Mode=1 を使っている。

今日の投稿を取得:

$today = getdate();
query_posts('year=' .$today["year"] .'&monthnum=' .$today["mon"] .'&day=' .$today["mday"] );

12月20日の投稿を取得:

query_posts( 'monthnum=12&day=20' );

2009年3月15日の投稿を取得:

<?php
//based on Austin Matzko's code from wp-hackers email list
  function filter_where($where = '') {
    //posts for March 1 to March 15, 2009
    $where .= " AND post_date >= '2009-03-01' AND post_date < '2009-03-16'";
    return $where;
  }
add_filter('posts_where', 'filter_where');
query_posts($query_string);
?>

最近30日間の投稿を取得:

<?php
//based on Austin Matzko's code from wp-hackers email list
  function filter_where($where = '') {
    //posts in the last 30 days
    $where .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'";
    return $where;
  }
add_filter('posts_where', 'filter_where');
query_posts($query_string);
?>

30〜60日前の投稿を取得

<?php
//based on Austin Matzko's code from wp-hackers email list
  function filter_where($where = '') {
    //posts  30 to 60 days old
    $where .= " AND post_date >= '" . date('Y-m-d', strtotime('-60 days')) . "'" . " AND post_date <= '" . date('Y-m-d', strtotime('-30 days')) . "'";
    return $where;
  }
add_filter('posts_where', 'filter_where');
query_posts($query_string);
?>

ページング引数

  • nopaging=true - ページングを無効にする。
  • posts_per_page=10 (整数)- 1ページに出力する投稿数。-1の場合すべての投稿を出力。
  • paged=2 (整数)- インデックスや月別・カテゴリー別アーカイブページンなどが複数ページにわたる場合の、表示するページ番号を指定。
  • order=ASC (ASC/DESC)- 取得したページの並び順。デフォルト値は「DESC」。

オフセット引数

取得される投稿の先頭から指定した件数をスキップします。

  • offset (整数)- 投稿の先頭からスキップする件数を指定。

以下は、最新の投稿(1件)に続く5件の投稿を取得します:

query_posts('posts_per_page=5&offset=1');

並び替え引数

指定したフィールドで投稿を並び替えて取得する。

並び順引数

並び替え引数の並び順を昇順または降順で指定。

  • order=ASC - 昇順。小さい値から大きい値の順。
  • order=DESC - 降順。大きい値から小さい値の順。

カスタムフィールド引数

カスタムフィールドのキーまたは値を元に、投稿(または 固定ページ) を取得。

  • meta_key=
  • meta_value=
  • meta_compare= - meta_value で指定された値を比較する演算子。デフォルトは '=' で, '!='、'>'、'>='、'<'、'<=' も使える。

キーが 'color' で値が 'blue' のカスタムフィールドを持つ投稿を取得:

query_posts('meta_key=color&meta_value=blue'); 

キーが 'color' のカスタムフィールドを持つ投稿を取得(値は問わない):

query_posts('meta_key=color'); 

値が 'blue' のカスタムフィールドを持つ投稿を取得(キーは問わない):

query_posts('meta_value=blue');

値が 'green' のカスタムフィールドを持つ 固定ページ を取得(キーは問わない):

query_posts('post_type=page&meta_value=green');

キーが 'color' で値が 'blue' でないカスタムフィールドを持つ記事と 固定ページ の両方を取得:

query_posts('post_type=any&meta_key=color&meta_compare=!=&meta_value=blue');

キーが 'miles' で値が 22 以下のカスタムフィールドを持つ投稿を取得。注意:値は数値ではなく文字列として扱われているため「99」は「100」より大きくなります。

query_posts('meta_key=miles&meta_compare=<=&meta_value=22');

引数の組み合わせ

引数はアンド記号(&)を使って複数組み合わせて指定することができます:

query_posts('cat=3&year=2004');

「最新の投稿」ページで、カテゴリーID が 13 かつ今月の投稿を取得する:

if (is_home()) {
query_posts($query_string . '&cat=13&monthnum=' . date('n',current_time('timestamp')));
}

バージョン 2.3 では、以下の組み合わせは カテゴリーID 1 と 3 に含まれる投稿を2件、タイトルの降順で取得します:

 query_posts(array('category__and'=>array(1,3),'posts_per_page'=>2,'orderby'=>title,'order'=>DESC));

バージョン 2.3バージョン 2.5 では、カテゴリーID が 1 で "apples" を含む投稿を取得することが期待される。

query_posts('cat=1&tag=apples');

バグ:カテゴリーとタグを同時に指定する場合は「+」で同じタグを2つ指定してください。参照 Ticket #5433

query_posts('cat=1&tag=apples+apples');

注意:'cat=1&tag=apples+oranges' は期待する結果にはなりません。

コード記述例

「最新の投稿」ページから指定カテゴリーを除く

index.php ファイルに以下のコードを書くと、カテゴリーID が 3 以外の 投稿を表示します。

<?php
   if (is_home()) {
      query_posts("cat=-3");
   }
?>

複数のカテゴリーID を指定することができます(バージョン 2.1.2 で検証済)。

<?php
   if (is_home()) {
      query_posts("cat=-1,-2,-3");
   }
?>

特定の記事を取得

特定の記事を取得する:

<?php
// 記事ID が 5 の投稿を取得する
query_posts('p=5');      
?>

続きを読む を表示したい場合は、グローバル変数 $more を 0 にします。

<?php
// 記事ID が 5 の投稿を取得する
query_posts('p=5');
      
global $more;
// 投稿の始めの部分のみ表示するため $more を 0 にする
$more = 0; 

// the Loop
while (have_posts()) : the_post(); 
  // 記事の本文
  the_content('Read the full post »'); 
endwhile;
?>

2008年5月に投稿された、カテゴリー ID 1 と 3 の投稿タイトルを1ページに5件ずつ表示する:

<?php if (have_posts()) :  query_posts('posts_per_page=5&cat=1,3&monthnum=5&year=2008');  ?>
  <?php while (have_posts()) : the_post(); ?>
    <h2><?php the_title(); ?></h2>
<?php endwhile; endif; ?>

カテゴリー ID 2 と 6 のいずれにも含まれないすべての投稿のタイトルをリストとして表示する:

<?php if (have_posts()) :  query_posts(array('category__not_in' => array(2,6))); ?>
<ul>
 <?php while (have_posts()) : the_post(); ?>
    <li><?php the_title(); ?></li>
<?php endwhile; endif; ?>
</ul>

特定の固定ページを取得

特定の固定ページを取得する:

<?php
query_posts('page_id=7');      // 投稿ID が 7 の固定ページのみ取得
?>

または

<?php
query_posts('pagename=about'); // 投稿スラッグが about の固定ページのみ取得
?>

子ページの場合は、親ページと子ページの投稿スラッグをスラッシュ(/)で区切って指定します:

<?php
query_posts('pagename=parent/child'); // 「parent」の子ページ「child」を取得
?>

query_posts に変数を与える

query_posts に変数を与える方法は2通りあります。どちらを使用してもかまいません。WordPress ループ の前に記述してください:

記述例 1

この例は、query_posts を実行する前にクエリ文字列を連結します。まず変数に値を代入し、変数と文字列を結合して、実行します。ここではカテゴリーID を変数で与えることにします。

 <?php
 $categoryvariable=$cat; // 現在のカテゴリーID を変数に代入
 $query= 'cat=' . $categoryvariable. '&orderby=date&order=ASC'; // クエリを連結
 query_posts($query); // クエリを実行
 ?>

記述例 2

次の例では、二重引用符を使って PHP に式を評価させます。まず、現在の年・月を取得し、query_posts で公開日が現在の年・月に該当する投稿を取得します。投稿の並び順は日付の昇順で、公開日の古い順に取得します。

<?php
$current_month = date('m');
$current_year = date('Y');

query_posts("cat=22&year=$current_year&monthnum=$current_month&order=ASC");
?>
<!-- ここでループ処理 -->

記述例 3

この例では、ページングを使ってすべての投稿を取得する場合を説明します。デフォルトの $query_string を使って query_posts ですべての投稿を取得させることができます。posts_per_page の値には -1 か各ページに表示したい投稿の数を指定します。後者の場合には posts_nav_link() でページを移動する手段を提供しましょう。

<?php 
query_posts($query_string.'&posts_per_page=-1');
while(have_posts()) { the_post();
<!-- ここでループ処理 -->
}
?>

記述例 4

$query_string 変数を使わずに、引数を配列に入れる方法もあります。例えば、記述例 2 のクエリは以下のようになります:

query_posts(array(
 'cat'      => 22, 
 'year'     => $current_year, 
 'monthnum' => $current_month, 
 'order'    => 'ASC',
));

この方法は、変数ごとに1行ずつ記述すると読み易くなります。

オリジナルクエリの保持(ページングなど)

デフォルトでは query_posts を実行すると、引数で指定した変数を除きページング,カテゴリー,日付などの現在のページのクエリ変数はすべて上書きされます。

オリジナルのクエリを保持したい場合は、query_poats の引数にオリジナルクエリの配列をマージしてください:

global $wp_query;
query_posts(
	array_merge(
		array('cat' => 1),
		$wp_query->query
	)
);


使い方のヒント

管理画面の 設定 > 表示設定 にある "1ページに表示する最大投稿数" パラメータで通常の表示件数を指定できます。これを変更するには 'posts_per_page' 引数を使います:

query_posts('category_name=The Category Name&posts_per_page=-1');  // 指定カテゴリーに含まれるすべての投稿を取得

リソース

最新英語版: WordPress Codex » Template Tags/query posts最新版との差分

関連

記事

コード・ドキュメンテーション

  • クラス: WP_Query - WP_Query クラスの詳細な全容
  • クラス: WP_Comment_Query - コメント関連のクエリのためのクラス
  • クラス: WP_User_Query - ユーザー関連のクエリのためのクラス
  • オブジェクト: $wpdb - $wpdb オブジェクトの使い方全容
  • 関数: set_query_var()
  • 関数: get_query_var()
  • 関数: query_posts() - 追加のカスタムクエリを作成
  • 関数: get_post() - 項目の ID を取得しデータベース内にあるその投稿のレコードを返す
  • 関数: get_posts() - 投稿の配列を返すことに特化した関数
  • 関数: get_pages() - ページの配列を返すことに特化した関数
  • 関数: have posts() - クエリが投稿を返すか否かを判断する条件関数
  • 関数: the_post() - クエリ後に自動的にループを設定する
  • 関数: rewind_posts() - 現状のループをリセットする
  • 関数: setup_postdata() - ループ内で個別の結果を得るためのクエリデータを設定する
  • 関数: wp_reset_postdata() - 直前のクエリを復元する (通常はループ内の別のループの後に用いられる)
  • 関数: wp_reset_query()
  • 関数: is_main_query() - 変更されるクエリがメインのクエリであることを確認する
  • アクションフック: pre_get_posts - WordPressクエリが実行される前に変更する
  • アクションフック: the_post - post クエリの後で post オブジェクトを変更する
  • フィルターフック: found_posts - WP_Query オブジェクトの found_posts 値を変更する


テンプレートタグへのクエリ文字列型パラメータの渡し方関数リファレンステンプレートタグ目次もご覧ください。


テンプレートタグへの PHP 関数型パラメータの渡し方関数リファレンステンプレートタグ目次もご覧ください。