投稿を固定する方法

  • 1. **管理画面

    投稿
    新規追加 または 編集** に移動します。

  • 2. 右側のメニューで、公開グループの可視性オプションの編集リンクをクリックします。
  • 3. この投稿をフロントページに固定するオプションをクリックします。

スティッキーポスト(Sticky Posts) - img1

固定投稿を表示する

固定投稿を表示する

最初の固定投稿のみを表示します。少なくとも1つの投稿が「固定投稿」として指定されている必要があります。そうでない場合、ループはすべての投稿を表示します:

  1. <?php
  2. $sticky = get_option( 'sticky_posts' );
  3. $query = new WP_Query( 'p=' . $sticky[0] );

最初の固定投稿のみを表示し、ない場合は最後に公開された投稿を返します:

  1. <?php
  2. $args = array(
  3. 'posts_per_page' => 1,
  4. 'post__in' => get_option( 'sticky_posts' ),
  5. 'ignore_sticky_posts' => 1,
  6. );
  7. $query = new WP_Query( $args );

最初の固定投稿のみを表示し、ない場合は何も返しません:

  1. <?php
  2. $args = array(
  3. 'posts_per_page' => 1,
  4. 'post__in' => get_option( 'sticky_posts' ),
  5. 'ignore_sticky_posts' => 1,
  6. );
  7. $query = new WP_Query( $args );
  8. if ( isset( $sticky[0] ) ) {
  9. // Insert here your stuff...
  10. }

固定投稿を表示しない

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

  1. <?php
  2. $args = array( 'post__not_in' => get_option( 'sticky_posts' ) );
  3. $query = new WP_Query( $args );

カテゴリから固定投稿を除外します。カテゴリ内のすべての投稿を返しますが、固定投稿は上部に表示しません。「固定投稿」はその自然な位置(例:日付順)に表示されます:

  1. <?php
  2. $args = array(
  3. 'ignore_sticky_posts' => 1,
  4. 'posts_per_page' => 3,
  5. 'cat' => 6,
  6. );
  7. $query = new WP_Query( $args );

カテゴリから固定投稿を除外します。カテゴリ内の投稿を返しますが、固定投稿は完全に除外し、ページングルールに従います:

  1. <?php
  2. $args = array(
  3. 'cat' => 3,
  4. 'ignore_sticky_posts' => 1,
  5. 'post__not_in' => get_option( 'sticky_posts' ),
  6. 'paged' => get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1,
  7. );
  8. $query = new WP_Query( $args );

このクエリを静的フロントページとして設定したページテンプレートで機能させたい場合は、get_query_var( ‘page’ ) を使用します。

  1. <?php
  2. /* Get all Sticky Posts */
  3. $sticky = get_option( 'sticky_posts' );
  4. /* Sort Sticky Posts, newest at the top */
  5. rsort( $sticky );
  6. /* Get top 5 Sticky Posts */
  7. $sticky = array_slice( $sticky, 0, 5 );
  8. /* Query Sticky Posts */
  9. $query = new WP_Query( array(
  10. 'post__in' => $sticky,
  11. 'ignore_sticky_posts' => 1,
  12. ) );

固定投稿のスタイル

テーマ作者がより簡単にスタイリングを行えるように、post_class() 関数を使用して DIV に class=”…” を追加します。次のように追加します:

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

post_class() は、その div の class=”whatever” 部分を出力します。これには、投稿、hentry(hAtom マイクロフォーマットページ用)、category-X(X は投稿が属する各カテゴリのスラッグ)、tag-X(同様ですが、タグ用)など、いくつかの異なるクラスの値が含まれます。また、「固定投稿」としてマークされた投稿には「sticky」が追加されます。

  1. .sticky { color: red; }

「sticky」クラスは、ホームページの最初のページにある固定投稿にのみ追加されます(is_home() が true で、is_paged() が false の場合)。