is_sticky()


WordPressのis_sticky()関数は、指定された投稿が「固定表示」に設定されているかどうかを判定するために使用されます。固定表示の投稿は、ブログのトップページやアーカイブページで常に最上部に表示されます。

構文

is_sticky( int $post_id );
  • $post_id (int) — 固定表示かどうかを確認したい投稿のID。省略した場合、現在のループ内の投稿が対象となります。

例1: 現在の投稿が固定表示かどうかを確認する

この例では、現在の投稿が固定表示かどうかを確認し、結果に応じてメッセージを表示します。

<?php if ( is_sticky() ) { echo 'この投稿は固定表示です。'; } else { echo 'この投稿は固定表示ではありません。'; } ?>

例2: 特定の投稿が固定表示かどうかを確認する

この例では、IDが5の投稿が固定表示かどうかを確認します。

<?php if ( is_sticky(5) ) { echo 'この投稿は固定表示です。'; } else { echo 'この投稿は固定表示ではありません。'; } ?>

例3: 固定表示の投稿に特別なクラスを追加する

この例では、固定表示の投稿に特別なCSSクラスを追加します。

<?php post_class( is_sticky() ? 'sticky-post' : '' ); ?>

例4: 固定表示の投稿のみを表示する

この例では、固定表示の投稿のみを表示するためのクエリを作成します。

<?php $sticky_posts = get_option( 'sticky_posts' ); if ( !empty( $sticky_posts ) ) { $query = new WP_Query( array( 'post__in' => $sticky_posts ) ); while ( $query->have_posts() ) { $query->the_post(); the_title(); } } ?>

例5: 固定表示の投稿を除外する

この例では、固定表示の投稿を除外して他の投稿を表示します。

<?php $query = new WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) ); while ( $query->have_posts() ) { $query->the_post(); the_title(); } ?>

例6: 固定表示の投稿数をカウントする

この例では、固定表示の投稿数をカウントします。

<?php $sticky_count = count( get_option( 'sticky_posts' ) ); echo '固定表示の投稿数: ' . $sticky_count; ?>

例7: 固定表示の投稿があるかどうかを確認する

この例では、固定表示の投稿があるかどうかを確認します。

<?php if ( !empty( get_option( 'sticky_posts' ) ) ) { echo '固定表示の投稿があります。'; } else { echo '固定表示の投稿はありません。'; } ?>

例8: 固定表示の投稿をカスタムクエリで取得する

この例では、固定表示の投稿をカスタムクエリで取得し、タイトルを表示します。

<?php $sticky_posts = get_option( 'sticky_posts' ); if ( !empty( $sticky_posts ) ) { $query = new WP_Query( array( 'post__in' => $sticky_posts, 'ignore_sticky_posts' => 1 ) ); while ( $query->have_posts() ) { $query->the_post(); the_title(); } } ?>

注意点:

  • 固定表示の投稿は、sticky_postsオプションに保存されます。このオプションは、投稿IDの配列を保持しています。
  • is_sticky()関数は、ループ内で使用するか、投稿IDを指定して使用します。
  • 固定表示の投稿は、通常のクエリでは最上部に表示されますが、ignore_sticky_postsパラメータを使用すると、この動作を無効にできます。

関連機能: