ワードプレスのis_sticky関数の使用方法・解説

概要

is_sticky() 関数は、投稿が「先頭に固定表示(sticky)」かどうかを調べるための関数です。固定表示された投稿は、通常の投稿リストの最上部に表示されるため、特に重要な情報やお知らせを目立たせたい時に利用されます。この関数は、WordPressのブログやウェブサイトで特定の投稿を強調するために使用されることが多いです。

よく使われるケース

  • 特定の重要な投稿を常に上部に表示したい場合
  • サイトの特集記事を目立たせたい場合
  • 更新情報やお知らせを提示したい場合
  • 特定のカテゴリーの重要性を高めたい場合
  • イベント情報を見逃さないようにするため
  • サイトのメインビジュアルを強調したい場合
  • 人気の投稿を特集記事として使用する場合
  • ユーザ自身が設定した「マイ投稿」を表示したい場合

構文

is_sticky( int $post_id = 0 )

パラメータ

  • $post_id : 投稿のID。省略した場合、現在の投稿が対象となります。

戻り値

  • ブール値。投稿が固定表示であればtrue、そうでなければfalseを返します。

関連する関数

使用可能なバージョン

  • WordPress 2.7 以降で使用可能です。

コアファイルのパス

  • wp-includes/post.php

サンプルコード

  1. 固定表示の投稿をチェック

    if ( is_sticky() ) {
       echo 'この投稿は固定表示されています。';
    } else {
       echo 'この投稿は固定表示されていません。';
    }
    

    このコードは、現在の投稿が固定表示されているかどうかを確認し、その結果を表示します。

  2. 固定表示の投稿をループ内で確認

    $recent_posts = wp_get_recent_posts();
    foreach ( $recent_posts as $post ) {
       if ( is_sticky( $post['ID'] ) ) {
           echo '<strong>' . $post['post_title'] . '</strong>(固定表示)<br>';
       } else {
           echo $post['post_title'] . '<br>';
       }
    }
    

    このコードは最近の投稿をループ処理し、それぞれが固定表示かどうかを確認して表示します。

  3. 固定表示の投稿をリスト表示

    $args = array( 'post_type' => 'post', 'posts_per_page' => 5 );
    $query = new WP_Query( $args );
    if ( $query->have_posts() ) {
       while ( $query->have_posts() ) {
           $query->the_post();
           if ( is_sticky() ) {
               echo '<li><strong>' . get_the_title() . '</strong></li>';
           } else {
               echo '<li>' . get_the_title() . '</li>';
           }
       }
    }
    wp_reset_postdata();
    

    このコードは特定の条件で取得した投稿をリスト表示し、固定表示かどうかによってタイトルのスタイリングを変えています。

  4. 固定投稿のみ表示するカスタムクエリ

    $args = array( 'post__in' => get_option( 'sticky_posts' ) );
    $sticky_query = new WP_Query( $args );
    if ( $sticky_query->have_posts() ) {
       while ( $sticky_query->have_posts() ) {
           $sticky_query->the_post();
           echo '<h2>' . get_the_title() . '</h2>';
       }
    }
    wp_reset_postdata();
    

    このコードは、固定表示された投稿のみを取得して表示しています。

  5. カスタムテンプレートでの使用

    if ( is_sticky() ) {
       get_template_part( 'template-parts/content', 'sticky' );
    } else {
       get_template_part( 'template-parts/content', 'single' );
    }
    

    このコードは、固定表示であれば特別なテンプレートをロードし、そうでなければ通常のテンプレートを使用する例です。

この関数のアクションでの使用可能性

アクション 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

非推奨又は削除されたバージョン

  • なし

この関数について質問する


上の計算式の答えを入力してください