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

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

「Codex:sandbox」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(showpostsの説明の翻訳練習)
280行目: 280行目:
 
=== ページ送り引数 ===
 
=== ページ送り引数 ===
 
</div>
 
</div>
* '''<tt>showposts</tt>''' (''整数'') - number of post to show per page. '''Deprecated''' in favor of 'posts_per_page'.
+
* '''<tt>showposts</tt>''' (''整数'') - ページごとに表示する投稿の件数。'''Deprecated''' in favor of 'posts_per_page'.
 
* '''<tt>posts_per_page</tt>''' (''整数'') - number of post to show per page. Use <tt>'posts_per_page'=>-1</tt> to show all posts. Note if the query is in a feed, wordpress overwrites this parameter with the stored 'posts_per_rss' option. To reimpose the limit, try using the 'post_limits' filter.
 
* '''<tt>posts_per_page</tt>''' (''整数'') - number of post to show per page. Use <tt>'posts_per_page'=>-1</tt> to show all posts. Note if the query is in a feed, wordpress overwrites this parameter with the stored 'posts_per_rss' option. To reimpose the limit, try using the 'post_limits' filter.
 
* '''<tt>nopaging</tt>''' (''ブーリアン'') - 全ての投稿を表示するかページ送りを使うかを指定します。デフォルトは'false'でページ送りを使います。
 
* '''<tt>nopaging</tt>''' (''ブーリアン'') - 全ての投稿を表示するかページ送りを使うかを指定します。デフォルトは'false'でページ送りを使います。
317行目: 317行目:
  
 
<div id="Offset_Parameter">
 
<div id="Offset_Parameter">
 +
 
=== オフセット引数 ===
 
=== オフセット引数 ===
 
</div>
 
</div>

2014年5月17日 (土) 14:15時点における版

ある投稿者に関連付けられた投稿を表示する。

  • author整数) - use author id.
  • author_name文字列) - use 'user_nicename' (NOT name).

Show Posts for one Author

Display posts by author, using author id:

query_posts( 'author=123' );

Display posts by author, using author 'user_nicename':

query_posts( 'author_name=rami' );

Show Posts From Several Authors

Display posts from several specific authors:

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

Exclude Posts Belonging to an Author

Display all posts except those from an author by prefixing its id with a '-' (minus) sign:

query_posts( 'author=-123' );

カテゴリー引数

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

  • cat (整数)- カテゴリー ID。
  • category_name (文字列)- カテゴリースラッグを指定(カテゴリー名ではない)。
  • category__and (配列)- カテゴリー ID の配列。指定した複数のカテゴリーすべてに含まれる投稿のみを表示。
  • category__in (配列)- カテゴリー ID の配列。指定した複数のカテゴリーいずれかに含まれる投稿のみを表示。
  • category__not_in (配列)- カテゴリー ID の配列。指定した複数のカテゴリーのいずれにもに含まれない投稿のみを表示。

ひとつのカテゴリーの投稿を表示

ID で指定したカテゴリー(とその子孫カテゴリー)に含まれる投稿のみを表示。

query_posts( 'cat=4' );

カテゴリースラッグで指定したカテゴリー(とその子孫カテゴリー)に含まれる投稿のみを表示。

query_posts( 'category_name=staff' );

複数のカテゴリーの投稿を表示

ID で指定した複数のカテゴリーに含まれる投稿のみを表示。

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

スラッグで指定した複数のカテゴリーに含まれる投稿のみを表示。

query_posts( 'category_name=staff,news' );

指定カテゴリーの投稿を除外

'-'(マイナス)記号を前につけたカテゴリー ID '以外' の投稿を表示。

query_posts( 'cat=-3' );

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

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

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

カテゴリー ID 2 または 6 に含まれる投稿を表示するには、前述の cat か category__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つのタグを含む投稿を表示

Display posts that have this tag, using tag slug:

query_posts('tag=cooking');

Display posts that have this tag, using tag id:

query_posts( 'tag_id=13' );


Show Posts From Several Tags

指定したタグのいずれかを含む投稿を表示。

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 も参照してください。

タクソノミー引数

特定のタクソノミーに関連付けられた投稿を表示。

  • {tax} (文字列) - タクソノミースラッグ。
  • tax_query (配列) - .

シンプルタクソノミークエリ

'people' カスタムタクソノミーで 'bob' というスラッグのタグがつけられた投稿を表示。

query_posts( array( 'people' => 'bob', 'posts_per_page' => 10 ) );

複数のタクソノミー処理 (バージョン 3.1 以降)

複数のカスタムタクソノミーの投稿を表示。

$args = array(
	'tax_query' => array(
		'relation' => 'AND',
		array(
			'taxonomy' => 'movie_janner',
			'field' => 'slug',
			'terms' => array( 'action', 'commedy' ),
		),
		array(
			'taxonomy' => 'actor',
			'field' => 'id',
			'terms' => array( 103, 115, 206 ),
			'operator' => 'NOT IN',
		)
	)
)
query_posts( $args );

投稿者引数

指定した 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');

投稿・固定ページ引数

ブログ投稿や固定ページに関連付けられた post を表示。

  • p整数)- 投稿 ID を指定。
  • name文字列) - 投稿スラッグ を指定。
  • page_id整数) - 固定ページ ID を指定。
  • pagename文字列) - 固定ページスラッグを指定。
  • post_parent整数) - 固定ページ ID を指定。子ページのみを返す。
  • post__in配列) - use post ids. Specify posts to retrieve.
  • post__not_in配列) - use post ids. Specify post NOT to retrieve.
  • post_type (string / array) - use post types. Retrieves posts by Post Types, default value is 'post';
    • 'post'
    • 'page'
    • 'revision'
    • 'attachment'
    • 'any' - retrieves any type except revisions
    • Custom Post Types (e.g. movies)
  • post_status (string / array) - use post status. Retrieves posts by Post Status, default value is 'publish';
    • 'publish' - a published post or page
    • 'pending' - post is pending review
    • 'draft' - a post in draft status
    • 'auto-draft' - a newly created post, with no content
    • 'future' - a post to publish in the future
    • 'private' - not visible to users who are not logged in
    • 'inherit' - a revision. see get_children.
    • 'trash' - post is in trashbin. added with Version 2.9.

ID を指定して投稿・固定ページを表示

特定の ID の投稿を表示。

query_posts( 'p=7' );

特定の ID の固定ページを表示。

query_posts( 'page_id=7' );

スラッグを指定して投稿・固定ページを表示

Display post by his slug:

query_posts( 'name=about-my-life' );

Display page by his slug:

query_posts( 'pagename=contact' );

Show Child Posts/Pages

Display child pages using the slug of the parent and the child page, separated by a slash:

query_posts( 'pagename=parent_slug/child_slug' );

Display child pages using parent page ID:

query_posts( 'post_parent=93' );

Multiple Posts/Pages Handling

Display only the specify posts:

query_posts( array( 'post__in' => array( 2, 5, 12, 14, 20 ) ) );

Display all posts but NOT the specify ones:

query_posts( array( 'post__not_in' => array( 2, 5, 12, 14, 20 ) ) );

Note: you cannot combine 'post__in' and 'post__not_in' in the same query.

投稿タイプを指定して投稿を表示

ページのみを表示。

query_posts( 'post_type=page' );

'any' 投稿タイプを表示 (履歴以外のすべてのタイプを取得)。

query_posts( 'post_type=any' );

カスタム投稿タイプを含む複数の投稿タイプを表示。

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

状態を指定して投稿を表示

下書きのみを表示。

query_posts( 'post_status=draft' );

複数の投稿状態を指定して表示。

query_posts( array( 'post_status' => array( 'pending', 'draft', 'future' ) ) );

ページ送り引数

  • showposts整数) - ページごとに表示する投稿の件数。Deprecated in favor of 'posts_per_page'.
  • posts_per_page整数) - number of post to show per page. Use 'posts_per_page'=>-1 to show all posts. Note if the query is in a feed, wordpress overwrites this parameter with the stored 'posts_per_rss' option. To reimpose the limit, try using the 'post_limits' filter.
  • nopagingブーリアン) - 全ての投稿を表示するかページ送りを使うかを指定します。デフォルトは'false'でページ送りを使います。
  • paged整数) - number of page. Show the posts that would normally show up just on page X when using the "Older Entries" link.

Pagination Note: You should set get_query_var( 'page' ); if you want your query to work with pagination. Since Wordpress 3.0.2, you do get_query_var( 'page' ) instead of get_query_var( 'paged' ). The pagination parameter 'paged' for query_posts() remains the same.

Show x Posts per page

Display 3 posts per page:

query_posts( 'posts_per_page=3' );

Show All Post

Display all posts in one page:

query_posts( 'posts_per_page=-1' );

Display all posts by disabling pagination:

query_posts( 'nopaging=true' );

Show Posts from page x

Display posts from page number 6:

query_posts( 'paged=6' );

Show Posts from Current Page

Display posts from current page:

$page = get_query_var( 'page' );
query_posts( 'paged=$page' );

オフセット引数

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

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

以下は、最新の投稿(1件)に続く5件の投稿を表示。

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

並び順・並べ替え引数

取得した投稿を並べ替える。

  • order (string) - Designates the ascending or descending order of the 'orderby' parameter.
    • 'ASC' - 昇順。小さい値から大きい値の順(1, 2, 3; a, b, c)
    • 'DESC' - 降順。大きい値から小さい値の順(3, 2, 1; c, b, a)
  • orderby (string) - Sort retrieved posts by:
    • 'none' - 順番指定なし(バージョン 2.8 以降のみ)
    • 'ID' - Order by post id.
    • 'author' - Order by author.
    • 'title' - Order by title.
    • 'date' - Order by date.
    • 'modified' - Order by last modified date.
    • 'parent' - Order by post/page parent id.
    • 'rand' - Random order.
    • 'comment_count' - コメント数で並べ替え(バージョン 2.9 以降のみ)
    • 'menu_order' - Order by Page Order. Used most often for 固定ページ (Order field in the Edit Page Attributes box) and for attachments (the integer fields in the Insert / Upload Media Gallery dialog), but could be used for any post type with distinct 'menu_order' values (they all default to 0).
    • 'meta_value' - Note that a 'meta_key=keyname' must also be present in the query. Note also that the sorting will be alphabetical which is fine for strings (i.e. words), but can be unexpected for numbers (e.g. 1, 3, 34, 4, 56, 6, etc, rather than 1, 3, 4, 6, 34, 56 as you might naturally expect).
    • 'meta_value_num' - Order by numeric meta value (available with Version 2.8).

Show Posts sorted by Title, Descending order

Display posts sorted by post title in a descending order:

query_posts( 'orderby=title&order=DESC' );

Show Random Post

Display one random post:

query_posts( 'orderby=rand&posts_per_page=1' );

Show Popular Posts

Display posts ordered by comment count:

query_posts( 'orderby=comment_count&order=DESC' );

先頭固定投稿引数

Show sticky post or ignore them.

  • caller_get_posts (bool) - ignore sticky posts or not. Deprecated as of Version 3.1 in favor of 'ignore_sticky_posts'.
  • ignore_sticky_posts (bool) - ignore sticky posts or not. Default value is 0, don't ignore. Ignore/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.

Show Sticky Posts

Display just the first sticky post:

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

Display just the first sticky post, if none return the last post published:

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

Display just the first sticky post, if none return nothing:

$sticky = get_option( 'sticky_posts' );
$args = array(
	'posts_per_page' => 1,
	'post__in'  => $sticky,
	'ignore_sticky_posts' => 1
);
query_posts( $args );
if ( $sticky[0] ) {
	// insert here your stuff...
}

Don't Show Sticky Posts

Exclude all sticky posts from the query:

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

Exclude sticky posts from a category. Return ALL posts within 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( 'ignore_sticky_posts=1&posts_per_page=3&cat=6' );

Exclude sticky posts from a category. Return posts within the category, but exclude sticky posts completely, and adhere to paging rules:

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

日時引数

指定した日時の間に投稿された投稿を表示。

  • year (int) - 4桁の年(例:2011)
  • monthnum (int) - 月(1〜12)
  • w (int) - 0〜53 で年間の週を指定。MySQL WEEK command Mode=1 を使っている。
  • day (int) - 日(1〜31)
  • hour (int) - 時(0〜23)
  • minute (int) - 分 (0〜60)
  • second (int) - 秒(0〜60)

今日の投稿を表示

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

現在の週の投稿のみを表示

$week = date('W'); $year = date('Y'); query_posts( 'year=' . $year . '&w=' . $week );

12月20日の投稿を表示

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

Note: The queries above return posts for a specific date period in history, i.e. "Posts from X year, X month, X day". They are unable to fetch posts from a timespan relative to the present, so queries like "Posts from the last 30 days" or "Posts from the last year" are not possible with a basic query, and require use of the posts_where filter to be completed. The examples below use the posts_where filter, and should be modifyable for most time-relative queries.

2009年3月15日の投稿を表示

// Create a new filtering function that will add our where clause to the query
function filter_where( $where = '' ) {
	// posts for March 1 to March 15, 2010
	$where .= " AND post_date >= '2010-03-01' AND post_date < '2010-03-16'";
	return $where;
}
add_filter( 'posts_where', 'filter_where' );

query_posts( $query_string );

最近30日間の投稿を表示

<pre>
// Create a new filtering function that will add our where clause to the query
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日前の投稿を表示

<pre>
// Create a new filtering function that will add our where clause to the query
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 );

カスタムフィールド引数

カスタムフィールドのキーまたは値を元に投稿を表示。

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

キーが 'color' で値が 'blue' のカスタムフィールドを持つ投稿を表示。

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

値は問わず、キーが 'color' のカスタムフィールドを持つ投稿を表示。

query_posts( 'meta_key=color' );

キーは問わず、値が 'blue' のカスタムフィールドを持つ投稿を表示。

query_posts( 'meta_value=color' );

キーは問わず、値が 'green' のカスタムフィールドを持つ固定ページを表示。

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

Returns posts with a custom field value of zero (0), regardless of the custom field key:

query_posts( 'meta_value'='_wp_zero_value' );

キーが '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' );