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

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

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(原文・外部資料リンク追記)
(和訳)
1行目: 1行目:
* 原文・最新版: [[:en:Template Tags/get_posts|WordPress Codex » Template Tags/get_posts]]
+
<div id="Description">
* [http://bono.s201.xrea.com/2007/04/394-wp_get_posts/ power source* » WP: テンプレートタグ get_posts で新着記事リスト等を表示] -- 以下の和訳・各種使用例
+
== 説明 ==
 +
</div>
  
== Description ==
+
テンプレートタグ [[テンプレートタグ/get_posts|<code>get_posts()</code>]] は、マルチループ(複数ループ)を作成するためのシンプルなタグです。
  
マルチループ(複数ループ)を作成するためのシンプルなタグ。
+
<div id="Usage">
 +
== 使い方 ==
 +
</div>
  
== Usage ==
+
<?php get_posts('引数'); ?>
  
%%% <?php get_posts('arguments'); ?> %%%
+
<div id="Examples">
 +
== 用例 ==
 +
</div>
  
== Examples ==
+
<div id="Generate_list">
 +
=== リストの生成 ===
 +
</div>
  
===Generate list===
+
サイトのフロントページに最新の記事を 1件のみ表示するよう設定していて、その次から 5件かつカテゴリID 1 の記事へのリンクと抜粋文を表示したいとき、次のようにコードを書きます。
  
If you had your blog configured to show just one post on the front page, but you also wanted to show links and excerpts to the previous five posts with the category ID of 1, you could use code like this:
+
<pre>
 
+
<ul>
<nowiki> <ul>
+
<?php
<?php
+
$myposts = get_posts('numberposts=5&offset=1&category=1');
global $post;
+
foreach($myposts as $post) :
$myposts = get_posts('numberposts=5&offset=1&category=1');
+
?>
foreach($myposts as $post) :
+
?>
+
 
     <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> --- <?php the_excerpt(); ?></li>
 
     <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> --- <?php the_excerpt(); ?></li>
<?php endforeach; ?>
+
<?php endforeach; ?>
</ul></nowiki>
+
</ul>
 +
</pre>
  
'''Note:''' The above query should only be made on a category that has more than one post.
+
'''注:''' 上記クエリは、1件以上の記事があるカテゴリで使うべき。
 +
 
 +
<div id="Generate_another_list">
 +
=== 別のリストの生成 ===
 +
</div>
 +
 
 +
ウェブページに 10件の記事をアルファベット順に表示したいとき、投稿日・タイトル・抜粋文を出すには次のようにします。
  
=== Generate another list ===
 
In the event you want to show ten posts sorted alphabetically in ascending order on your web page, you could do the following to grab the posted date, title and excerpt:
 
 
<pre>
 
<pre>
 
<?php
 
<?php
 
$postslist = get_posts('numberposts=10&order=ASC&orderby=post_title');
 
$postslist = get_posts('numberposts=10&order=ASC&orderby=post_title');
foreach ($postslist as $post) : start_wp(); ?>
+
foreach ($postslist as $post) :
<?php the_date(); echo "<br />"; ?>
+
setup_postdata($post);
<?php the_title(); ?>   
+
the_date();
<?php the_excerpt(); ?>
+
echo "<br />";
<?php endforeach; ?>
+
the_title();
 +
the_excerpt();
 +
endforeach;
 +
?>
 
</pre>
 
</pre>
  
===Access all post data===
+
<div id="Access_all_post_data">
 +
=== 全ての投稿データにアクセス ===
 +
</div>
 +
 
 +
様々な理由から、デフォルトでは、記事 ID や [[テンプレートタグ/the_content|the_content()]] 経由での記事本文といったいくつかのデータが get_posts で取得できません。これは、内部関数 <code>setup_postdata()</code> を <code>$post</code> 配列で呼ぶことにより解決できます。
  
For various reasons some data is not available to get_posts by default, such as post content through [[Template Tags/the_content|the_content()]], or the ID. This is solved by calling an internal function, setup_postdata(), with the $post array:
 
 
<pre><?php
 
<pre><?php
 
$lastposts = get_posts('numberposts=3');
 
$lastposts = get_posts('numberposts=3');
54行目: 70行目:
 
</pre>
 
</pre>
  
Another way to access the ID, without having to call setup_postdata, is to just do "$post->ID", or "$post->post_data" for the content. This lets you avoid calling internal functions.
+
<code>setup_postdata</code> を呼ばずに ID 等を取得する別の方法としては、<code>"$post->ID"</code> や <code>"$post->post_data"</code>(記事本文)を持ちます。これで内部関数を呼ぶことを避けられます。
 +
(訳注:こちらの方が望ましいのか?)
  
== Parameters ==
+
<div id="Parameters">
 +
== パラメータ ==
 +
</div>
  
; numberposts : (''integer'') Number of posts to return. Defaults to <tt>5</tt>.
+
; numberposts  
; offset : (''integer'') Offset from latest post. Defaults to <tt>0</tt>.
+
: ''整数'') 取得する投稿の数。初期値は <code>5</code>
; category : (''integer'') Only show posts from this category ID. There is no default.
+
; offset  
; orderby : ("string") Sort Posts by one of various values, including:
+
: ''整数'') 先頭から何件の投稿を除外するか。初期値は <code>0</code>(除外しない)。
:* <tt>'post_title'</tt> - Sort alphabetically by Page/post title (Default).
+
; category  
:* <tt>'post_date'</tt> - Sort by creation time.
+
: ''整数'') 指定したカテゴリID の投稿のみを返す。初期値はなし(全カテゴリ)。
:* <tt>'post_modified'</tt> - Sort by time last modified.
+
; orderby  
:* <tt>'ID'</tt> - Sort by numeric Post ID.
+
: (''文字列'') どの項目の値で投稿をソート(並べ替え)するか。次の値など:
:* <tt>'post_author'</tt> - Sort by author numeric ID.
+
:* <code>'post_title'</code> - ページ/記事タイトルのアルファベット順にソート (初期値)
:* <tt>'post_name'</tt> - Sort alphabetically by Post slug.
+
:* <code>'post_date'</code> - 投稿日時順にソート
:*'''Note:''' The ''orderby'' value can be the name of any field in the [[Database Description|wp_post table]].
+
:* <code>'post_modified'</code> - 最終更新日時順にソート
; order : (''string'') Sort order for options. Valid values:
+
:* <code>'ID'</code> - 投稿ID でソート
:* <tt>'ASC'</tt> - Sort from lowest to highest (Default).
+
:* <code>'post_author'</code> - 著者の ID 番号でソート
:* <tt>'DESC'</tt> - Sort from highest to lowest.
+
:* <code>'post_name'</code> - 投稿スラッグのアルファベット順にソート
 +
:* '''注:''' この値は [[データベース概要#Table:_wp_posts|wp_post テーブル]] のどのフィールド名でも指定できる。
 +
; order  
 +
: ''文字列'') ソート順。有効値:
 +
:* <code>'ASC'</code> - 昇順(値 小→大)にソート
 +
:* <code>'DESC'</code> - 降順(値 大→小)にソート (初期値)
  
== Related ==
+
{{原文|Template Tags/get_posts}}
 +
 
 +
== 外部リンク ==
 +
 
 +
* [http://bono.s201.xrea.com/2007/04/394-wp_get_posts/ power source* » WP: テンプレートタグ get_posts で新着記事リスト等を表示] (2007-04-07) -- 各種使用例
 +
 
 +
<div id="Related">
 +
== 関連 ==
 +
</div>
  
 
{{Tag General Tags}}
 
{{Tag General Tags}}
 +
{{Query String Tag Footer}}
 +
 +
{{DEFAULTSORT:get_posts}}
  
{{Tag Footer}}
+
[[en:Template Tags/get_posts]]

2007年10月1日 (月) 23:14時点における版

テンプレートタグ get_posts() は、マルチループ(複数ループ)を作成するためのシンプルなタグです。

使い方

<?php get_posts('引数'); ?>

用例

リストの生成

サイトのフロントページに最新の記事を 1件のみ表示するよう設定していて、その次から 5件かつカテゴリID 1 の記事へのリンクと抜粋文を表示したいとき、次のようにコードを書きます。

<ul>
<?php
$myposts = get_posts('numberposts=5&offset=1&category=1');
foreach($myposts as $post) :
?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> --- <?php the_excerpt(); ?></li>
<?php endforeach; ?>
</ul>

注: 上記クエリは、1件以上の記事があるカテゴリで使うべき。

別のリストの生成

ウェブページに 10件の記事をアルファベット順に表示したいとき、投稿日・タイトル・抜粋文を出すには次のようにします。

<?php
$postslist = get_posts('numberposts=10&order=ASC&orderby=post_title');
foreach ($postslist as $post) :
setup_postdata($post);
the_date();
echo "<br />";
the_title();
the_excerpt();
endforeach;
?>

全ての投稿データにアクセス

様々な理由から、デフォルトでは、記事 ID や the_content() 経由での記事本文といったいくつかのデータが get_posts で取得できません。これは、内部関数 setup_postdata()$post 配列で呼ぶことにより解決できます。

<?php
$lastposts = get_posts('numberposts=3');

foreach($lastposts as $post) :
    setup_postdata($post);
    ?>
    <a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a>
    <?php the_content(); ?>
<?php endforeach; ?>

setup_postdata を呼ばずに ID 等を取得する別の方法としては、"$post->ID""$post->post_data"(記事本文)を持ちます。これで内部関数を呼ぶことを避けられます。 (訳注:こちらの方が望ましいのか?)

パラメータ

numberposts
整数) 取得する投稿の数。初期値は 5
offset
整数) 先頭から何件の投稿を除外するか。初期値は 0(除外しない)。
category
整数) 指定したカテゴリID の投稿のみを返す。初期値はなし(全カテゴリ)。
orderby
文字列) どの項目の値で投稿をソート(並べ替え)するか。次の値など:
  • 'post_title' - ページ/記事タイトルのアルファベット順にソート (初期値)
  • 'post_date' - 投稿日時順にソート
  • 'post_modified' - 最終更新日時順にソート
  • 'ID' - 投稿ID でソート
  • 'post_author' - 著者の ID 番号でソート
  • 'post_name' - 投稿スラッグのアルファベット順にソート
  • 注: この値は wp_post テーブル のどのフィールド名でも指定できる。
order
文字列) ソート順。有効値:
  • 'ASC' - 昇順(値 小→大)にソート
  • 'DESC' - 降順(値 大→小)にソート (初期値)

最新英語版: WordPress Codex » Template Tags/get_posts

外部リンク


記事

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

  • クラス: WP_Query - WP_Query クエリの詳細概要
  • オブジェクト: $wpdb - $wpdb オブジェクトの使い方概要
  • 関数: 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 - 投稿オブジェクトをクエリの後に変更する。
  • フィルターフック: found_posts - found_posts WP_Query オブジェクトの値を変更する


関連

固定ページ: get_all_page_ids(), get_ancestors(), get_page_link(), get_page_by_path(), get_page_by_title(), get_page_children(), get_page_hierarchy(), get_page_uri() /en, get_pages(), is_page(), page_uri_index() /en, wp_list_pages(), wp_page_menu()


リスト・ドロップダウン関数: wp_list_authors(), wp_list_categories(), wp_list_pages(), wp_list_bookmarks(), wp_list_comments(), wp_get_archives(), wp_page_menu(), wp_dropdown_pages(), wp_dropdown_categories(), wp_dropdown_users()


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