WordPressの “sticky”ポストについて


ブログで投稿が増えてくると、投稿一覧のトップ表示したいような記事もできてくる。

それをうまく制御してくれるのが、WordPressに標準 (2.7以降)で使える”Sticky Posts“だ。

使い方

投稿を公開する際に、公開状態の「編集」をクリックし、「この投稿を戦闘に固定表示」にチェックを入れる。「OK」をクリックする。

変更すると、

この”sticky”機能は、カスタム投稿タイプでも使える。

register_post_type()で定義する際に、 supports に ‘sticky’ を入れると上記同様に使える。

表示方法

queryの書き方はcodexを参照
http://codex.wordpress.org/Class_Reference/WP_Query#Sticky_Post_Parameters

stickyな投稿のみを表示する方法

$sticky = get_option( 'sticky_posts' );

すると、$stickyにはstickyなpost IDがarrayで入っている。それをpost__in などで使うと、queryでstickyなpostのみ抽出できる。カスタム投稿タイプを使う場合は、post_typeを指定する。

また、post_class() で sticky が入るので、表示させる際にcssで装飾することも可能。

参照:

http://www.wpbeginner.com/wp-tutorials/how-to-display-the-latest-sticky-posts-in-wordpress/

注意!(2013-01-12 追加)

get_option(‘sticky_posts’) をしたidには、post_statusがtrashされたものも含まれている。表示する際には

if( get_post_status($id) != ‘publish’)

continue;

などで処理するよう気をつけたい。

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL