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

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

「先頭固定表示の投稿」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(en:Sticky Posts 20:00, 30 May 2014 Gsarig 版を流し込み。)
 
(和訳しました。)
1行目: 1行目:
{{NeedTrans}}
+
{{CheckTrans}}
  
'''先頭固定表示の投稿''' (Sticky Posts) is a feature introduced with [[Version 2.7]]. A check box is included on the [[Administration_Panels|Administration]] > [[Administration_Panels#Posts|Posts]] > [[Posts Add New SubPanel|Add New]] Screen (In the ''Publish'' panel under ''Visibility''. Click ''edit'' to see the checkbox). If checked, the post will be placed at the top of the front page of posts, keeping it there until new posts are published. Please notice that this feature is [http://core.trac.wordpress.org/ticket/12702 only available for the built-in post type post] and not for custom post types.
+
'''先頭固定表示の投稿'''(Sticky Posts)は [[Version 2.7|バージョン 2.7]] で導入された機能です。
 +
[[管理画面]] > [[管理画面#Posts|投稿]] > [[記事を投稿する|新規投稿を追加]] 画面にチェックボックスがあります(''公開''メタボックスの''公開状態''の中です。チェックボックスを見るには''編集''をクリックします)。チェックを入れるとその投稿は、新しい投稿が公開されるまで、フロントページの先頭に表示されます。この機能は [http://core.trac.wordpress.org/ticket/12702 組み込みの post 投稿タイプのみで利用可能] であり、カスタム投稿タイプは対象外であることに注意してください。
  
== Function Reference ==
+
<div id="Function_Reference">
 +
== 関数リファレンス ==
 +
</div>
  
 
{| cellspacing="10" width="100%"
 
{| cellspacing="10" width="100%"
11行目: 14行目:
 
{| class="widefat"
 
{| class="widefat"
 
|- style="background:#464646; color:#d7d7d7;"
 
|- style="background:#464646; color:#d7d7d7;"
! '''Template Tags'''
+
! '''テンプレートタグ'''
 
|-
 
|-
 
|
 
|
22行目: 25行目:
 
{| class="widefat"
 
{| class="widefat"
 
|- style="background:#464646; color:#d7d7d7;"
 
|- style="background:#464646; color:#d7d7d7;"
! '''Template Tags'''
+
! '''テンプレートタグ'''
 
|-
 
|-
 
|
 
|
31行目: 34行目:
 
|}
 
|}
  
== Display Sticky Posts ==
+
<div id="Display_Sticky_Posts">
 +
== 先頭固定表示の投稿を表示する ==
 +
</div>
  
'''Show Sticky Posts'''
+
'''先頭固定表示の投稿を表示する'''
  
Display just the first sticky post:
+
一番最初の先頭固定表示の投稿を取得します:(参考:少なくともひとつの投稿が「先頭固定表示」に指定されていなければなりません。そうでなければこのループはすべての投稿を取得します。)
(Note: At least one post must be designated as a "sticky post" or else the loop will display all posts.)
+
 
   
 
   
 
  $sticky = get_option( 'sticky_posts' );
 
  $sticky = get_option( 'sticky_posts' );
 
  $query = new WP_Query( 'p=' . $sticky[0] );
 
  $query = new WP_Query( 'p=' . $sticky[0] );
  
Display just the first sticky post, if none return the last post published:
+
一番最初の先頭固定表示の投稿を取得します。もし存在しなければ最新の公開済み投稿を返します:
  
 
  $args = array(
 
  $args = array(
50行目: 54行目:
 
  $query = new WP_Query( $args );
 
  $query = new WP_Query( $args );
  
Display just the first sticky post, if none return nothing:
+
一番最初の先頭固定表示の投稿を取得します。もし存在しなければ何も返しません:
  
 
  $sticky = get_option( 'sticky_posts' );
 
  $sticky = get_option( 'sticky_posts' );
60行目: 64行目:
 
  $query = new WP_Query( $args );
 
  $query = new WP_Query( $args );
 
  if ( isset($sticky[0]) ) {
 
  if ( isset($sticky[0]) ) {
  // insert here your stuff...
+
  // ここに処理を入れる...
 
  }
 
  }
  
'''Don't Show Sticky Posts'''
+
'''先頭固定表示の投稿を表示しない'''
  
Exclude all sticky posts from the query:
+
クエリからすべての先頭固定表示の投稿を除外します:
  
 
  $query = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );
 
  $query = new WP_Query( 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 = new WP_Query( 'ignore_sticky_posts=1&posts_per_page=3&cat=6' );
 
  $query = new WP_Query( '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( 'paged' ) ? get_query_var( 'paged' ) : 1;
 
  $paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
85行目: 89行目:
 
  $query = new WP_Query( $args );
 
  $query = new WP_Query( $args );
  
Note: Use <tt>get_query_var('page')</tt> if you want this query to work in a [[Pages#Page_Templates|Page template]] that you've set as your [[Creating_a_Static_Front_Page|static front page]].
+
参考:このクエリを[[Creating_a_Static_Front_Page|静的フロントページ]]にセットした[[Pages#Page_Templates|ページテンプレート]]内で働かせたい場合は <tt>get_query_var( 'page' )</tt> を使ってください。
  
''' --- '''
+
'''先頭固定表示の投稿だけを表示'''
  
 
<pre>
 
<pre>
 
<?php
 
<?php
/* Get all Sticky Posts */
+
/* 先頭固定表示の投稿をすべて取得 */
 
$sticky = get_option( 'sticky_posts' );
 
$sticky = get_option( 'sticky_posts' );
  
/* Sort Sticky Posts, newest at the top */
+
/* 最新が先頭になるように先頭固定表示の投稿をソート */
 
rsort( $sticky );
 
rsort( $sticky );
  
/* Get top 5 Sticky Posts */
+
/* 先頭から 5 つの先頭固定表示の投稿を取得 */
 
$sticky = array_slice( $sticky, 0, 5 );
 
$sticky = array_slice( $sticky, 0, 5 );
  
/* Query Sticky Posts */
+
/* 先頭固定表示の投稿をクエリ */
 
$query = new WP_Query( array( 'post__in' => $sticky, 'ignore_sticky_posts' => 1 ) );
 
$query = new WP_Query( array( 'post__in' => $sticky, 'ignore_sticky_posts' => 1 ) );
 
?>
 
?>
 
</pre>
 
</pre>
  
== Style Sticky Posts ==
+
<div id="Style_Sticky_Posts">
 +
== 先頭固定表示の投稿にスタイルをつける ==
 +
</div>
  
To help theme authors perform simpler styling, the [[テンプレートタグ/post_class|post_class()]] function is used to add ''class="..."'' to DIV, just add:
+
テーマ作成者がスタイル付けをより簡単に行えるように、[[テンプレートタグ/post_class|post_class()]] 関数が用意されています。これを使って ''class="..."'' DIV 要素へ追加するには次のようにします:
  
 
<pre>
 
<pre>
113行目: 119行目:
 
</pre>
 
</pre>
  
The [[テンプレートタグ/post_class|post_class()]] outputs the ''class="whatever"'' piece for that div. This includes several different classes of value: post, hentry (for hAtom microformat pages), category-X (where X is the slug of every category the post is in), and tag-X (similar, but with tags). '''It also adds "sticky" for posts marked as Sticky Posts'''.
+
[[テンプレートタグ/post_class|post_class()]] はその div へ ''class="何々"'' という文字列を出力します。これはいくつか異なるクラスの値を含みます:post, hentry(hAtom マイクロフォーマットのページ), category-X(X は投稿につけられた各カテゴリーのスラッグ)および tag-X(先ほどと同様、ただしタグ)。'''また先頭固定表示に指定された投稿には「sticky」を追加します'''
  
 
<pre>
 
<pre>
119行目: 125行目:
 
</pre>
 
</pre>
  
Note: The "sticky" class is only added for sticky posts on the first page of the home page (is_home() is true and is_paged() is false).
+
参考:「sticky」クラスはホームページの先頭ページ(<tt>is_home()</tt> が <tt>true</tt>、かつ <tt>is_paged()</tt> が <tt>false</tt>)に表示された先頭固定表示の投稿だけに追加されます。
  
== Related ==
+
<div id="Related">
 +
== 関連項目 ==
 +
</div>
  
 
{{原文|Sticky Posts|154155}} <!-- 14:33, 25 September 2015 Gblsm 版 -->
 
{{原文|Sticky Posts|154155}} <!-- 14:33, 25 September 2015 Gblsm 版 -->

2015年9月28日 (月) 22:35時点における版

この項目「先頭固定表示の投稿」は、翻訳チェック待ちの項目です。加筆、訂正などを通して、Codex ドキュメンテーションにご協力下さい。

先頭固定表示の投稿(Sticky Posts)は バージョン 2.7 で導入された機能です。 管理画面 > 投稿 > 新規投稿を追加 画面にチェックボックスがあります(公開メタボックスの公開状態の中です。チェックボックスを見るには編集をクリックします)。チェックを入れるとその投稿は、新しい投稿が公開されるまで、フロントページの先頭に表示されます。この機能は 組み込みの post 投稿タイプのみで利用可能 であり、カスタム投稿タイプは対象外であることに注意してください。

テンプレートタグ
テンプレートタグ

先頭固定表示の投稿を表示する

先頭固定表示の投稿を表示する

一番最初の先頭固定表示の投稿を取得します:(参考:少なくともひとつの投稿が「先頭固定表示」に指定されていなければなりません。そうでなければこのループはすべての投稿を取得します。)

$sticky = get_option( 'sticky_posts' );
$query = new WP_Query( 'p=' . $sticky[0] );

一番最初の先頭固定表示の投稿を取得します。もし存在しなければ最新の公開済み投稿を返します:

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

一番最初の先頭固定表示の投稿を取得します。もし存在しなければ何も返しません:

$sticky = get_option( 'sticky_posts' );
$args = array(
	'posts_per_page' => 1,
	'post__in'  => $sticky,
	'ignore_sticky_posts' => 1
);
$query = new WP_Query( $args );
if ( isset($sticky[0]) ) {
	// ここに処理を入れる...
}

先頭固定表示の投稿を表示しない

クエリからすべての先頭固定表示の投稿を除外します:

$query = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );

あるカテゴリーから先頭固定表示の投稿を除外します。カテゴリー内のすべての投稿を返しますが、先頭固定表示の投稿を先頭に表示しません。「先頭固定表示の投稿」は本来の位置に表示されます(例えば日付順):

$query = new WP_Query( 'ignore_sticky_posts=1&posts_per_page=3&cat=6' );

あるカテゴリーから先頭固定表示の投稿を除外します。カテゴリー内の投稿を返しますが、先頭固定表示の投稿を完全に除外し、ページ送りルールを守ります:

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

参考:このクエリを静的フロントページにセットしたページテンプレート内で働かせたい場合は get_query_var( 'page' ) を使ってください。

先頭固定表示の投稿だけを表示

<?php
/* 先頭固定表示の投稿をすべて取得 */
$sticky = get_option( 'sticky_posts' );

/* 最新が先頭になるように先頭固定表示の投稿をソート */
rsort( $sticky );

/* 先頭から 5 つの先頭固定表示の投稿を取得 */
$sticky = array_slice( $sticky, 0, 5 );

/* 先頭固定表示の投稿をクエリ */
$query = new WP_Query( array( 'post__in' => $sticky, 'ignore_sticky_posts' => 1 ) );
?>

先頭固定表示の投稿にスタイルをつける

テーマ作成者がスタイル付けをより簡単に行えるように、post_class() 関数が用意されています。これを使って class="..." を DIV 要素へ追加するには次のようにします:

<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

post_class() はその div へ class="何々" という文字列を出力します。これはいくつか異なるクラスの値を含みます:post, hentry(hAtom マイクロフォーマットのページ), category-X(X は投稿につけられた各カテゴリーのスラッグ)および tag-X(先ほどと同様、ただしタグ)。また先頭固定表示に指定された投稿には「sticky」を追加します

.sticky { color:red; }

参考:「sticky」クラスはホームページの先頭ページ(is_home()true、かつ is_paged()false)に表示された先頭固定表示の投稿だけに追加されます。

最新英語版: WordPress Codex » Sticky Posts最新版との差分