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

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

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

提供: WordPress Codex 日本語版
移動先: 案内検索
(和訳しました。)
(HelpHub 移動メッセージ)
 
1行目: 1行目:
{{CheckTrans}}
+
このページは https://ja.wordpress.org/support/article/sticky-posts/ へ移動しました。
 
+
'''先頭固定表示の投稿'''(Sticky Posts)は [[Version 2.7|バージョン 2.7]] で導入された機能です。
+
[[管理画面]] > [[管理画面#Posts|投稿]] > [[記事を投稿する|新規投稿を追加]] 画面にチェックボックスがあります(''公開''メタボックスの''公開状態''の中です。チェックボックスを見るには''編集''をクリックします)。チェックを入れるとその投稿は、新しい投稿が公開されるまで、フロントページの先頭に表示されます。この機能は [http://core.trac.wordpress.org/ticket/12702 組み込みの post 投稿タイプのみで利用可能] であり、カスタム投稿タイプは対象外であることに注意してください。
+
 
+
<div id="Function_Reference">
+
== 関数リファレンス ==
+
</div>
+
 
+
{| cellspacing="10" width="100%"
+
|- valign="top"
+
| width="50%" |
+
 
+
{| class="widefat"
+
|- style="background:#464646; color:#d7d7d7;"
+
! '''テンプレートタグ'''
+
|-
+
|
+
* <tt>[[関数リファレンス/is_sticky | is_sticky()]]</tt>
+
* <tt>[[関数リファレンス/sticky_class | sticky_class()]]</tt>
+
|}
+
 
+
| width="50%" |
+
 
+
{| class="widefat"
+
|- style="background:#464646; color:#d7d7d7;"
+
! '''テンプレートタグ'''
+
|-
+
|
+
*
+
*
+
|}
+
 
+
|}
+
 
+
<div id="Display_Sticky_Posts">
+
== 先頭固定表示の投稿を表示する ==
+
</div>
+
 
+
'''先頭固定表示の投稿を表示する'''
+
 
+
一番最初の先頭固定表示の投稿を取得します:(参考:少なくともひとつの投稿が「先頭固定表示」に指定されていなければなりません。そうでなければこのループはすべての投稿を取得します。)
+
+
$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 );
+
 
+
参考:このクエリを[[Creating_a_Static_Front_Page|静的フロントページ]]にセットした[[Pages#Page_Templates|ページテンプレート]]内で働かせたい場合は <tt>get_query_var( 'page' )</tt> を使ってください。
+
 
+
'''先頭固定表示の投稿だけを表示'''
+
 
+
<pre>
+
<?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 ) );
+
?>
+
</pre>
+
 
+
<div id="Style_Sticky_Posts">
+
== 先頭固定表示の投稿にスタイルをつける ==
+
</div>
+
 
+
テーマ作成者がスタイル付けをより簡単に行えるように、[[テンプレートタグ/post_class|post_class()]] 関数が用意されています。これを使って ''class="..."'' を DIV 要素へ追加するには次のようにします:
+
 
+
<pre>
+
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+
</pre>
+
 
+
[[テンプレートタグ/post_class|post_class()]] はその div へ ''class="何々"'' という文字列を出力します。これはいくつか異なるクラスの値を含みます:post, hentry(hAtom マイクロフォーマットのページ), category-X(X は投稿につけられた各カテゴリーのスラッグ)および tag-X(先ほどと同様、ただしタグ)。'''また先頭固定表示に指定された投稿には「sticky」を追加します'''。
+
 
+
<pre>
+
.sticky { color:red; }
+
</pre>
+
 
+
参考:「sticky」クラスはホームページの先頭ページ(<tt>is_home()</tt> が <tt>true</tt>、かつ <tt>is_paged()</tt> が <tt>false</tt>)に表示された先頭固定表示の投稿だけに追加されます。
+
 
+
<div id="Related">
+
== 関連項目 ==
+
</div>
+
 
+
{{原文|Sticky Posts|154155}} <!-- 14:33, 25 September 2015 Gblsm 版 -->
+
 
+
{{DEFAULTSORT:せんとうこていひょうじのとうこう}}
+
[[Category:上級トピック]]
+
 
+
[[en:Sticky Posts]]
+

2020年1月18日 (土) 20:04時点における最新版

このページは https://ja.wordpress.org/support/article/sticky-posts/ へ移動しました。